【问题标题】:How can I update a 4D record from SQL Server, over ODBC?如何通过 ODBC 从 SQL Server 更新 4D 记录?
【发布时间】:2019-07-12 23:28:35
【问题描述】:

我在 4D Server 中运行了一个 4D 数据库,并运行了 4D Sql Server。在另一台 Windows 机器上,我为它设置了一个 ODBC 数据源。在第二台机器上,在 SQL Server Management Studio 中,我使用该 ODBC 数据源创建了一个链接服务器。我可以使用 OPENQUERY 通过该链接服务器成功查询 4D 记录,但我无法更新或删除那些相同的 4D 记录。

这会输出预期的 4D 数据:

SELECT * FROM OPENQUERY([4DTest2], 'SELECT UserID, FirstName, LastName FROM [Users] WHERE UserID = 23990')

这会出错:

UPDATE OPENQUERY([4DTest2], 'SELECT UserID, FirstName, LastName FROM [Users] WHERE UserID = 23990') SET FirstName = 'Doug'

错误是:

链接服务器“4DTest2”的 OLE DB 提供程序“MSDASQL”返回消息“数据提供程序或其他服务返回 E_FAIL 状态。”。 消息 7343,第 16 层,状态 4,第 2 行 链接服务器“4DTest2”的 OLE DB 提供程序“MSDASQL”无法更新表“[MSDASQL]”。

【问题讨论】:

    标签: odbc openquery 4d-database


    【解决方案1】:

    我使用这个技巧解决了 MySQL 的类似问题。 诀窍是取消选中 ODBC 选项“Force Forward Only Cursor”

    来源:issue with INSERT into linked server

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多