• ベストアンサー

VB6でSQLServer2000接続時

レコードセットを取得した際に、時々Recordcountが -1になってしまいます。 レコードが実際には存在するので、このような場合は 仕方がなくEOFまでMoveNextを繰り返して何件あるか 数えるのですが、なぜ-1になるのかご存知の方はおられますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

以前同じ経験をしました。 こちらを参照してください。 http://support.microsoft.com/default.aspx?scid=kb;ja;194973 レコードセットの際、 adOpenStatic を使用して 念のためにMoveLast・MoveFirstを使用してから RecordCountで取得するようにしています。

その他の回答 (1)

  • TAK_999
  • ベストアンサー率43% (42/96)
回答No.1

「RecordCountは処理した件数だから、何も処理してい ない(レコードセットを取得した直後)状態では-1 になる」と認識しています。 間違っていたらごめんなさい。 レコードセットを取得といっても、全レコードの情報 をメモリに保存するわけではないのでレコード件数は わからないのが本当のところだと思います。 私は件数を知りたい場合は、以下のSQLでレコード数だ けを取得しています。  SELECT COUNT(*) AS RECNUM FROM Table1 Table1のレコード件数をRECNUMに保存します。

関連するQ&A