C# 从sql server通过链接服务器插入时出错
我正在尝试将一些数据从c应用程序插入AS400服务器。我在控制面板中制作了一个DSN,数据源:C# 从sql server通过链接服务器插入时出错,c#,sql-server,odbc,C#,Sql Server,Odbc,我正在尝试将一些数据从c应用程序插入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
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命令是:
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]".
有人能帮我解决这个问题吗?
谢谢
更改连接字符串并添加blow代码
CommitMode=0
更改连接字符串并添加blow代码
CommitMode=0
如果有疑问,请用谷歌搜索错误: 更新DB2 for iSeries表时出现错误SQL7008 更新DB2foriSeries表时,可能会出现错误 SQL7008-文件中的表对该操作无效 发生这种情况的原因是您尝试更新的表没有被记录,并且您的更新正在事务中运行 有多种方法可以解决此问题: 关闭选项>运行SQL>安全更新模式。选择安全更新模式时,AQT将在事务中运行更新和删除。 确保选中“选项>技术参数>自动提交”。 如果您使用的是DB2/Connect,请确保AutoCommit设置为Yes。这是通过DB2配置助手配置的。 如果您使用的是DB2客户机Access Express,请将提交模式设置为Commit immediate*NONE。这是在数据源的ODBC配置上配置的。
你已经试过所有这些了吗?如果有疑问,用谷歌搜索错误: 更新DB2 for iSeries表时出现错误SQL7008 更新DB2foriSeries表时,可能会出现错误 SQL7008-文件中的表对该操作无效 发生这种情况的原因是您尝试更新的表没有被记录,并且您的更新正在事务中运行 有多种方法可以解决此问题: 关闭选项>运行SQL>安全更新模式。选择安全更新模式时,AQT将在事务中运行更新和删除。 确保选中“选项>技术参数>自动提交”。 如果您使用的是DB2/Connect,请确保AutoCommit设置为Yes。这是通过DB2配置助手配置的。 如果您使用的是DB2客户机Access Express,请将提交模式设置为Commit immediate*NONE。这是在数据源的ODBC配置上配置的。
您已经尝试过所有这些了吗?您不需要为完全限定的插入引用模式吗
INSERT INTO DBName.dbo.test VALUES('0730',' 10230526')
您不需要为完全限定的插入引用模式吗
INSERT INTO DBName.dbo.test VALUES('0730',' 10230526')
注意:不建议使用IsolationLevel.Chaos,因为在IBMi上,这会导致事务自动提交,并且无法回滚。如果可以,请尝试IsolationLevel枚举中的其他值
注意:不建议使用IsolationLevel.Chaos,因为在IBMi上,这会导致事务自动提交,并且无法回滚。如果可以,请尝试IsolationLevel枚举中的其他值。请参阅。这可能有助于你了解情况。这可能对你有帮助