0

odbc 接続を使用する Microsoft Access からこのパススルー クエリを実行すると、正常に動作します。

SELECT   b.PRODUCT, b.UPC_NBR, b.EAN_NBR, b.NAME AS ProductDescription, b.AUTHOR, 
     o.RETAILER, o.REFER_NBR, o.ARDESC, a.NAME, o.TRAN_DATE, 
     o.QTY, o.RETAIL, o.PRICE, o.COST

FROM    BOOK_MASTER_REC as b JOIN 
    ORBDETL_RECORD as o ON ISBN_TITLE = o.TITLE 
                 AND ISBN_PUBLISHER = o.BK_PUBL 
                 AND BOOK_GROUP = o.BK_GROUP  
                 AND BOOK_PREFIX = o.BK_PREFIX JOIN 
    ARDESC_RECORD as a ON o.ARDESC = a.ARDESC 

WHERE b.PRODUCT Between 600 And 698

リンク サーバー経由で同じ odbc 接続を使用する SMSS から同じクエリを実行すると、失敗します。

SELECT b.PRODUCT, b.UPC_NBR, b.EAN_NBR, b.NAME AS ProductDescription, b.AUTHOR, 
     o.RETAILER, o.REFER_NBR, o.ARDESC, a.NAME, o.TRAN_DATE, 
     o.QTY, o.RETAIL, o.PRICE, o.COST

FROM    DPS_GPR..root.BOOK_MASTER_REC as b INNER JOIN 
    DPS_GPR..root.ORBDETL_RECORD as o ON ISBN_TITLE = o.TITLE 
                         AND ISBN_PUBLISHER = o.BK_PUBL 
                         AND BOOK_GROUP = o.BK_GROUP  
                         AND BOOK_PREFIX = o.BK_PREFIX INNER JOIN 
    DPS_GPR..root.ARDESC_RECORD as a ON o.ARDESC = a.ARDESC 

WHERE b.PRODUCT Between 600 And 698

次のエラーが発生します。

リンク サーバー "DPS_GPR" の OLE DB プロバイダー "MSDASQL" がメッセージ "[Transoft][TSODBC][usqlsd]')' がここに期待されています (FROM)" を返しました。メッセージ 7321、レベル 16、状態 2、行 2 クエリの準備中にエラーが発生しました "SELECT Col1061,Col1062,Col1064,Col1065,Col1066,Col1042,Col1048,Col1049,Col1050,Col1051,Col1052,Col1053,Col1054,Tbl1005.NAME Col1040 root.Ardesc_record TBL1005、(Col1057、Col1058、Col1059、Col1060、Col1061、Col1062、Col1064、Col1065、Col1066、TBL1003からRETAILER COL1042、TBL1003.BK_PREFIX COL1044444 ,Tbl1003.REFER_NBR Col1048,Tbl1003.ARDESC Col1049,Tbl1003.TRAN_DATE Col1050,Tbl1003.QTY Col1051,Tbl1003.RETAIL Col1052,Tbl1003.PRICE Col1053,Tbl1003.COST Col1054,Col1067,Col1067,Col107,Col1063

MS Accessから離れようとしているときに、SQL Serverを介してこれを機能させる方法についてのアイデアをいただければ幸いです。

4

1 に答える 1

0

パススルークエリにすることで、これを機能させることができました。

SELECT * FROM OPENQUERY(DPS_GPR, 'select ... blah blah blah ...')

私が望んでいたほど理想的なソリューションではありませんが、うまくいきます。

于 2012-04-23T05:18:48.740 に答える