[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 メーリングリストの案内