1

对于某个文件(我认为是 AS/400 的远程系统中的一个表),突然 INSERT、UPDATE 和 DELETE 失败。

我们使用的链接服务器是在 SQL Server 中设置的,它使用 ODBC 数据源 (DSN)。数据源是“iSeries Access for Windows 的 ODBC 数据源”。

只有一个表有这个问题。我们可以使用相同的链接服务器在其他表中进行插入和更新,而不会出现任何错误,并且 SELECT 仍然适用于有问题的表。

我们收到 INSERT 和 UPDATE 语句的这些消息(在下面的代码中替换了服务器和数据库名称):

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" reported an error. 
The provider did not give any information about the error.
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not INSERT INTO 
table "[MYSERVER].[MYDB].[DMPCOM].[DMPXIF]". Unknown provider error.

并且 DELETE 给出了这个消息:

The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not delete from 
table ""MYDB"."DMPCOM"."DMPXIF"". There was a recoverable, provider-specific 
error, such as an RPC failure.

如果您对此有任何线索,请不要犹豫,回答这个问题。

谢谢, 安德烈亚斯

4

1 回答 1

1

错误的原因是 AS400 文件上的日志功能已关闭,我们使用链接服务器和 ODBC iSeries 数据源从 SQL Server 连接到该文件。这也关闭了承诺控制。

然而,在 ODBC iSeries 数据源上将提交设置为“立即提交 (*NONE)”并没有帮助。(也许除了更改该设置之外还有更多内容。)

AS/400 系统的数据库管理员使用其默认设置重新创建了表,包括日志和提交控制,然后一切恢复正常,并且从链接服务器连接中插入、更新和删除工作正常。

于 2013-01-03T08:21:55.150 回答