我正在尝试将一些数据从c#应用程序插入到AS400服务器中。我在控制面板的数据源中创建了一个数据序列号:
Data source name : Newissues
Description :iSeries Access for Windows ODBC data source
Connection type : use odbc access mode在C#中,我使用的OdbcConnection .My连接字符串是:
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插入数据,但收到相同的消息error:
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]". 有人能帮我解决这个问题吗?谢谢
发布于 2013-07-22 15:48:52
更改您的连接字符串并添加blow代码
CommitMode=0发布于 2013-12-24 05:41:37
using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction(IsolationLevel.Chaos))
{
db2Command.Transaction = db2Transaction;
Update/Insert/Delete
}
db2Command = iDB2Command注意:不推荐使用IsolationLevel.Chaos,因为在IBM上,这会导致事务自动提交,并且不能回滚。如果可以的话,请尝试IsolationLevel枚举中的其他值。
发布于 2013-07-28 13:59:44
如果有疑问,在谷歌上搜索错误:http://www.querytool.com/help/876.htm
更新iSeries表的DB2时出现错误SQL7008
更新iSeries表的DB2时,可能会出现错误
SQL7008 -(文件)中的(表)对操作无效
这是因为您尝试更新的表没有被记录日志,而您的更新是在事务内运行的。
有许多方法可以解决此问题:
这些你都试过了吗?
https://stackoverflow.com/questions/17060142
复制相似问题