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を介してこれを機能させる方法についてのアイデアをいただければ幸いです。