0

コマンド オブジェクトを使用してクエリを実行していますが、クエリの実行中に予期しないエラーが発生しました。助けが必要です。

同じコードが数行上で機能しているように見え、元の db テーブルを -dev コピー テーブルに置き換えた後にのみ表示されたようです。

コードは次のとおりです。

sql = "SELECT blah, blah... " &_
        "FROM tracker p " &_
        "LEFT JOIN ... " &_
        "LEFT JOIN ... " &_
        "WHERE p.id = ? "
Dim cmdObj : set cmdObj = server.CreateObject("ADODB.Command")
cmdObj.ActiveConnection = conn
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

これは問題なく実行され、いくつかの結果を保存します。次に、次の行に対して別のクエリを実行し、同じパラメーターを使用します。

sql = "SELECT * FROM table-dev p WHERE p.id = ? "
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

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

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 5.1 Driver][mysqld-5.0.95-log]You have an error in your SQL 
syntax; check the manual that corresponds to your MySQL server version for 
the right syntax to use near '-dev p WHERE p.id = _latin1'21115'' at line 1

これが現在表示されている可能性があり、エンコーディングをパラメーターにスローしている理由を誰かが正しい方向に向けることができることを願っています。私はこれを以前に見たことがあり、なんとか修正を見つけることができましたが、私の人生ではその方法を思い出すことができません。

すべてのヘルプは大歓迎です。どうもありがとう、JB

4

1 に答える 1