[pgsql-jp: 34410] ADO/ODBCによるデータ取得で日本語データが正常に取得できない

森田 雅之 moritam @ jcsc.co.jp
2004年 12月 7日 (火) 14:30:13 JST


お世話になります。森田です。

ADOにてデータを取得する際、Valueプロパティを参照すると、データの後ろにゴミデータが付いてくるといった現象が発生します。
この現象が発生するのは、日本語データが入ったフィールドだけです。コードを後述します。

正常に取得する方法をご教授願えますでしょうか。

・postgreSQLのバージョン 7.3.4
・ODBCドライバのバージョン   psqlodbc-jp-20010713版

--- コード ---
Private Sub Command1_Click()
    Dim oConn As ADODB.Connection
    Dim oRec As ADODB.Recordset
    Set oConn = New ADODB.Connection
    oConn.ConnectionString = "Provider=MSDASQL;DRIVER=PostgreSQL;" & _
                             "SERVER=192.168.0.6;" & _
                             "DATABASE=PG;" & _
                             "UID=postgres;" & _
                             "PWD=;"
    Call oConn.Open
    Set oRec = oConn.Execute("select * from AAA")
    With oRec
        Do Until .EOF
            Debug.Print .Fields("Field1").Value
            .MoveNext
        Loop
    End With
    
    oRec.Close
    Set oRec = Nothing
    oConn.Close
    Set oConn = Nothing
End Sub

--- イミディエイトウィンドウの出力結果 ---
ああああああああああああ               72

Field1はCHAR(30)で定義しております。
後ろにあるゴミデータは区切り文字と次フィールドのデータのようです。
またFieldのActualSizeは42となっておりました。
フィールドサイズ+文字数(「あ」の数)となっているようです。

よろしくお願いいたします。

以上



pgsql-jp メーリングリストの案内