1

VBScriptを使用して、英語の文字のみを含むMySQLデータベースをクエリしています。クエリは基本的に次のとおりです。SELECT*FROMテーブル名PROCEDUREANALYSE(1,1)

DBで直接クエリを実行すると、期待される結果が返されます。ただし、クエリがVBScriptを介して実行されると、ジブリッシュ(中国語?)が返されます。事実、私がDBを作成したので、DBには英語しか含まれていません。同じテーブルに対して他の多くのクエリを実行しましたが、問題はありませんでした。PROCEDURE ANALYZEクエリを実行した場合にのみ、予期しないものが返されます。

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

strSQLcommand = "SELECT * FROM " & strTempTableName & " PROCEDURE ANALYSE(1,1)"
otRecordset.Open strSQLcommand,Connection

If Not otRecordset.EOF Then
otRecordset.movefirst
Do While NOT otRecordset.EOF
wscript.echo otRecordset(0).value
wscript.echo  otRecordset(1).value
otRecordset.Movenext
Loop
End If

このDBの他のテーブルから値を返すことに問題があったことはありません。私はこのクエリを何度も実行しましたが、いつも同じ結果が得られて困惑しました。

どんな考えやアイデアも大歓迎です!

4

1 に答える 1

1

わかりましたので、DB 自体とは何の関係もないことがわかりました。

VBScript の VarTYpe() メソッドを使用して、返されるデータ型のチェックを開始することにしました。「意味不明/中国語」を返すフィールドのデータ型は 8092 でした。基本的には、バイト配列です。少しGoogleの妖精の粉をまき散らして、この関数にたどり着きました:

Function C8209toStr(body8209)
    If VarType(body8209) = 8209 Then
        Dim i
        ReDim aOut(UBound(body8209))
        For i = 1 to UBound(body8209) + 1
             aOut(i-1) = chr(ascb(midb(body8209,i,1)))
        Next
    C8209toStr = Join(aOut, "")
    End If
End Function

他の人が来るのを助けることを願っています!

于 2012-10-04T11:00:46.887 に答える