Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从sql server通过链接服务器插入时出错_C#_Sql Server_Odbc - Fatal编程技术网

C# 从sql server通过链接服务器插入时出错

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

我正在尝试将一些数据从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;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枚举中的其他值。

请参阅。这可能有助于你了解情况。这可能对你有帮助