【问题标题】:DB2 .NET data provider error on updating iSeries table更新 iSeries 表时出现 DB2 .NET 数据提供程序错误
【发布时间】:2013-02-19 23:03:52
【问题描述】:

我有一个奇怪的问题。更新 AS400 表时,出现以下错误

错误 [55019] [IBM][AS] SQL7008N REXX 变量“”包含不一致的数据。

相同的代码在 MSSQL 2008 上运行良好

在互联网上搜索后,我发现当我在 AS400 上更新 Non-journaled 表时会出现此问题

为此我必须为该表启用journaling。这不是解决方案,因为我无权访问 AS400 服务器。

互联网上提到的解决方法是将NOT NULL 子句添加到INSERT,UPDATE, DELETE 之类的查询中,这在我的情况下是不可能的,因为我没有直接执行查询,而是使用DBContext

另一种解决方法是将isolationlevel/commitmode 设置为NOCOMMIT or 32。我尝试在 web 配置中同时设置,但未能收到错误 System.ArgumentException: Invalid argument 和异常 Entity Exception: The underlying provider failed on ConnectionString.

所以问题很简单怎么做??

【问题讨论】:

  • 您的框架是否正在尝试提交更新?
  • 最好的办法是调查是否有办法关闭交易。
  • 有趣的是在错误消息注释中看到REXX。什么平台运行查询? REXX 正在运行什么?使用什么驱动程序?几种不同的方法可能适合不同的设置。

标签: entity-framework-4 db2 ibm-midrange db2-400


【解决方案1】:

尝试设置 DefaultIsolationLevel:

iDB2Connection cn = new iDB2Connection();
cn.ConnectionString = "DataSource=myiSeries; DefaultIsolationLevel=Chaos;";

虽然老了,但这个Redbook 有一些很好的信息。

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2012-08-12
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多