[pgsql-jp: 38903] Re: Excel VBA + ODBC 接続でデータ取得で、先頭1桁を返す場合がある?
vyx02237 @ nifty.com
vyx02237 @ nifty.com
2007年 10月 27日 (土) 22:04:34 JST
樋口です。
>
>これは具体的にどのような現象でしょうか?
>簡単なサンプルコードで示していただけるとありがたいのですが。
>
ドライバーのバージョン 管理ツールのデータソースで見えるバージョンを
上げながら、下記のコードを走らせて見ました。
コード
Function odbctest()
Dim ThisCon As ADODB.Connection
Dim ThisRecordset As ADODB.Recordset
Dim sqlstr As String
Set ThisCon = New ADODB.Connection
ThisCon.Open "Provider=MSDASQL; DSN=PostgreSql; UID=********; PWD=******"
Set ThisRecordset = New ADODB.Recordset
ThisRecordset.CursorType = adOpenKeyset
ThisRecordset.Open "select * from generate_series(1,3);", ThisCon
Debug.Print ThisRecordset.RecordCount
While ThisRecordset.EOF <> True
Debug.Print ThisRecordset.Fields.Item(0)
ThisRecordset.MoveNext
Wend
Debug.Print ThisRecordset.RecordCount
End Function
--
8.01.02.00 動作正常
8.02.02.00 動作正常
8.02.03.00 ダメ
以上の結果となります。 8.02.03.00の場合、
debug.prin の結果は
3 --recordcountは正しい
1 --eof が正しくなく、ループしてない。
3 --recordcountは依然として正しい。
となります。
あれこれのバージョンのドライバーをセットアップして、
どうも、8.02.02.00あたりから、recordset.count recordset.eof
が同時に正しく動作する設定ができなくなって、
とりあえず8.01.02.00のドライバーで自分の利用法の中では
十分働いているのでodbcのドライバーだけはバージョンを
あげるのを止めています。
pgsql-jp メーリングリストの案内