1

我正在使用 VBScript 查询仅包含英文字符的 MySQL 数据库。查询基本上是:SELECT * FROM table name PROCEDURE ANALYSE(1,1)

当我直接在数据库上运行查询时,它会返回预期的结果。但是,当查询通过 VBScript 运行时,它会返回乱码(中文?)。我知道事实上数据库只包含英语,因为我是建造它的人。我已经针对同一张表运行了许多其他查询,并且没有遇到任何问题。只有当我运行 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

从这个数据库中的任何其他表返回值我从来没有遇到过问题。我已经多次运行此查询并且总是得到相同的结果,这让我感到困惑。

非常感谢任何想法或想法!

4

1 回答 1

1

好的,所以,事实证明它与数据库本身无关。

我决定开始检查使用 VBScript VarTYpe() 方法返回的数据类型。返回“乱码/中文”的字段的数据类型为 8092。基本上,一个字节数组。洒一点谷歌仙尘让我想到了这个功能:

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 回答