0

我正在尝试将一些数据从 ac# 应用程序插入到 AS400 服务器。我在控制面板中创建了一个 DSN,数据源:

Data source name : Newissues
Description :iSeries Access for Windows ODBC data source
Connection type : use odbc access mode

在 C# 中,我使用了 OdbcConnection 。我的连接字符串是:

DSN=newissues; UID=strUser; PWD=strPassword;DBQ=DBName; QueryTimeOut=0;

从 C# 我可以打开数据库并进行选择,但是当我尝试插入或删除时,我收到了这条消息:

ERROR [HY000] [IBM][iSeries Access ODBC Driver][DB2 UDB]SQL7008 - test in DBName not valid for operation.

我的插入命令是:

INSERT INTO DBName.test VALUES('0730','  10230526')

我还尝试从我有链接服务器的 sql server 插入数据,但我收到相同的消息错误:

insert openquery(MyLinkServer,'select "IACO","IAPOLNUM" from DBName .test WHERE 1=0') VALUES('0730','  10230526')

错误:

OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "[IBM]   [System i Access ODBC Driver][DB2 for i5/OS]SQL7008 - test in DBName not valid for operation.".
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "MSDASQL" for linked server "MyLinkServer" could not INSERT INTO table "[MSDASQL]". 

有人可以帮我解决这个问题吗?谢谢

4

4 回答 4

2

这是参考

更改连接字符串并添加打击代码

CommitMode=0
于 2013-07-22T07:48:51.907 回答
1
using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction(IsolationLevel.Chaos))
{
  db2Command.Transaction = db2Transaction;
  Update/Insert/Delete
}

db2Command = iDB2Command

注意:IsolationLevel.Chaos不推荐,因为在 IBM i 上,这会导致事务自动提交,并且无法回滚。IsolationLevel如果可行,请尝试枚举中的其他值。

于 2013-12-23T21:41:37.227 回答
0

如果有疑问,谷歌错误:http ://www.querytool.com/help/876.htm

更新 DB2 for iSeries 表时出错 SQL7008

更新 DB2 for iSeries 表时,您可能会遇到错误

SQL7008 -(文件)中的(表)对操作无效

发生这种情况是因为您尝试更新的表没有被记录,并且您的更新正在事务中运行。

有很多方法可以解决这个问题:

  • 关闭选项 > 运行 SQL > 安全更新模式。When Safe Update mode is selected, AQT will run Updates and Deletes within a transaction.
  • 确保选中选项 > 技术参数 > 自动提交。
  • 如果您使用 DB2/Connect,请确保 AutoCommit 设置为 Yes。这是使用 DB2 Configuration Assistant 配置的。
  • 如果您使用 DB2 Client Access Express,请将 Commit 模式设置为 Commit immediate (*NONE )。这是在您的数据源的 ODBC 配置中配置的。

你已经尝试过所有这些了吗?

于 2013-07-28T05:59:43.550 回答
0

您不必为完全限定的插入引用架构吗?

INSERT INTO DBName.dbo.test VALUES('0730','  10230526')
于 2013-07-28T06:39:37.590 回答