我正在尝试通过链接服务器设置从 SQL Server 2008 R2 更新 PervasiveSQL 后端(Sage ERP 系统)中的数据。以下是返回的详细信息和错误消息... 关键是更新语句在开发框上工作得很好,非常相似的设置。任何帮助将不胜感激!
环境:
- Windows Server 2008 Enterprise(云服务器、Rackspace)
- Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) Express Edition with Advanced Services on Windows NT 6.1 (Build 7601: Service Pack 1) (WOW64) (Hypervisor)
- 使用 Pervasive SQL v.10 后端运行的 Sage Timberline ERP
设置:
我们在 SQL Server 2008 中有一个 LINKED SERVER 设置,使用 32 位 Timberline 驱动程序 (OBDC) 链接服务器使用 MSDASQL 提供程序,以下两个属性设置为 TRUE,“允许进程内”和“非事务更新”< /p>
问题:
我们可以从链接服务器成功提取数据,请参见下面的查询。我们可以通过 SSMS 中的链接服务器成功浏览对象。
SELECT *
FROM OPENQUERY (TLLINKSERVER, 'SELECT * FROM TABLE1 where JOBID = ''00-00-111111''')
但是,UPDATE
下面的语句返回以下错误。
UPDATE OPENQUERY(TLLINKSERVER, 'SELECT * FROM TABLE1 WHERE JOBID = ''00-00-111111''')
SET DATEFIELD = '2013-07-15'
错误:
链接服务器“TLLINKSERVER”的 OLE DB 提供程序“MSDASQL”返回消息“[Sage Timberline Office][Sage Timberline Office ODBC 驱动程序]语法错误。”。链接服务器“TLLINKSERVER”的 OLE DB 提供程序“MSDASQL”返回消息“[Sage Timberline Office][Sage Timberline Office ODBC Driver]UPDATE "\SERVER1\Company Data\DATA\COMPANY1\"<< ??? >>."TABLE1 " SET "DATEFIELD1"=? WHERE "JOBID"=? AND "DATEFIELD1"=?"。
消息 7343,级别 16,状态 4,第 1 行
链接服务器“TLLINKSERVER”的 OLE DB 提供程序“MSDASQL”无法更新表“[MSDASQL]”。