電子書籍の厳選無料作品が豊富!

皆様、いつも御世話になっております。
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読み込みでは、他の書き方があるのでしょか?

どなたか、ご教授お願いします。

A 回答 (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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す