从9.1E升级到10.2B后,进程ODBC INSERT INTO失败

时间:2011-10-03 19:03:11

标签: sql-server linked-server progress-4gl openedge

我有一些sql脚本将数据从我们的SQL Server移动到Progress框。但它停止了工作。

这适用于9.1E但升级到10.2B后失败

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "unit-desc", "address" from pub."rm-unit"') 
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(UnitNumber) AS [unit-desc]
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

升级OLE DB提供程序“MSDASQL”后链接服务器“linkedserver”返回消息“多步OLE DB操作生成错误”后的错误消息。 检查每个OLE DB状态值(如果可用)。没有工作。“。消息7344,级别16,状态1,行1链接服务器”linkedserver“的OLE DB提供程序”MSDASQL“由于列”unit-desc“而无法INSERT INTO表”[MSDASQL]“。用户无权写入该列。

为了让它工作,我用连字符删除了列。

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "address" from pub."rm-unit"')  
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

任何人都知道如何使这个工作?

1 个答案:

答案 0 :(得分:1)

您正在使用MSDASQL ODBC驱动程序连接到Progress,但您需要DataDirect OpenEdge 10.2B ODBC驱动程序。你在使用QAD吗?如果是这样,请联系QAD,他们应该只能从Progress获取ODBC驱动程序的安装程序。如果没有,请直接联系Progress。根据您与供应商或进度的合同,您可能会或可能不会对驱动程序收取费用。