• 締切済み

VB6.0 DAO ORACLE ヒント使用方法に付いて

皆様、いつも御世話になっております。 OS : Windows 2003 Server 開発環境 : VB6.0 + Oracle9.2 ライブラリ : Microsoft DAO 3.6 Object Library DAOでODBC経由でOracleに接続し、 (接続文字列 DSN=XXXX;UID=XXXX;PWD=XXXX) ヒント句の部分がエラーになって困っております。 発行SQL文---------------------------------------------------- SELECT /*+ index( テーブル名 インデックス名) */ * FROM テーブル名 WHERE 各種条件 ORDER BY 順序指定 ------------------------------------------------------------- 発行したSQL文をコピーし、SQLPLUSで動作させた所、意図したとおりに動作しており、SQLの記述が間違っている訳ではないようです。 VBからのOracle読み込みでは、他の書き方があるのでしょか? どなたか、ご教授お願いします。

みんなの回答

回答No.1

ヒント句の記載がORACLE特有のSQLであるため、ODBC経由ではうまく処理できないのではないかと思います。 ODBCにSQL文の処理をさせず直接Oracle側にSQLを投げる方法としてパススルークエリという方法があります。 なのでパススルークエリを使えばうまくいくかもしれません。 コーディングは得意でないので怪しいサンプルですが、下記のような感じでどうでしょう? (実行環境がないので試せていません。) === Dim dDB As Database Dim sSQL As String Dim rRS As Recordset Dim ConnectStr As String ConnectStr= "ODBC;DSN=XXX;UID=XXX;PWD=XXX;" sSQL = "SELECT /*+ index( テーブル名 インデックス名) */ * FROM テーブル名 WHERE 各種条件 ORDER BY 順序指定" Set dDB = OpenDatabase("", False, False, ConnectStr) Set rRS = dDB.OpenRecordset(sSQL, dbOpenSnapshot, dbSQLPassThrough) ・・・ === もし、動作しないようであれば、パススルークエリについて調べて動くように修正してみてください。 === Your DBA MOTO:TAKER

参考URL:
http://www.accessclub.jp/dao/OpenRecordset.html

関連するQ&A