OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ASP上のVB SCRIPT記述(result setからcountを取得する方法)

  • すぐに回答を!
  • 質問No.123339
  • 閲覧数1430
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 71% (5/7)

初心者です。
ASP上のVB SCRIPT記述(result setからcountを取得する方法)が分かりません。

Set rsRet= MyConn.Execute(strSql)
nCltCnt = 0
If Not rsRet Is Nothing Then
nCltCnt = rsRet.Count
End If

という記述をしたのですが、エラーになります。メッセージは以下の通りです。

●エラー タイプ
Microsoft VBScript 実行時エラー (0x800A01B6)
オブジェクトでサポートされていないプロパティまたはメソッドです。: 'Count'
xxx.asp, line 110


サポートされていないのであれば、result setからの件数の取得を教えて下さい。
どなたかアドバイス宜しく願います。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル10

ベストアンサー率 42% (79/186)

>現在、ADOを使用してます
ADOでは、Countプロパティはありません。RecordCountプロパティを使用します。
 nCltCnt=rsRet.RecordCount

ですが、ADOのマニュアルを見ると、「前方スクロールカーソル」ではレコード数が取れないこと、「プロバイダやカーソルタイプ」によってはサポートしないことが明記されています。ですので、
 Set rsRet=MyConn.Execute(strSql)
では、前方スクロールとなるため、取得できません。
ですので、レコードセットのOpenメソッドを使い、前方スクロールカーソルでないタイプを選ぶことと、OLE DBプロバイダがRecordCountプロパティをサポートするかどうかを調べてください。

ちなみに、私はDBがOracleだったので、oo4oを使い、GetRowsメソッドを使い、配列の大きさを見て、レコード数を数えました。

>ミドルウェアって、compatible; MSIE 5.01; Windows NT) ということで宜しいんでしょうか?
ミドルウェアとは、まさに、ADO、DAO、RDO、oo4oのことをさしています。

>将来的にはRDOに変更する
余計なことかもしれませんが、RDOは将来性がないと思います。ADOでもODBCが使えますので、ADOのままにされることをお勧めします。

>各々で使用可能なメソッド
ADOは、ADOがインストールしてあるコンピュータで「ADO*.chm」で検索してもらえば、ヘルプファイルが見つかると思います。
RDOは、ヘルプファイル自身が、情報が少ないので、MSDNをお勧めします。
DAOは、同じく「DAO*.chm」または「DAO*.hlp」でヘルプが見つかると思います。
お礼コメント
mtoyo88

お礼率 71% (5/7)

ありがとうございます。やっと意味が分かった気がします。
助かりました。
投稿日時 - 2001-08-27 20:33:57
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 42% (79/186)

レコードセットオブジェクトが、どれを使っているか分かりませんが、レコードセットは、一度、MoveLastメソッドなどで、一番後ろのレコードまで動かさないと、Countプロパティでレコード数は取れません。 エラーメッセージが、それにあたるかどうかは分かりませんが、どのミドルウェアのレコードセットかを教えていただければ、もう少し詳しくコメントできると思います。 ...続きを読む
レコードセットオブジェクトが、どれを使っているか分かりませんが、レコードセットは、一度、MoveLastメソッドなどで、一番後ろのレコードまで動かさないと、Countプロパティでレコード数は取れません。

エラーメッセージが、それにあたるかどうかは分かりませんが、どのミドルウェアのレコードセットかを教えていただければ、もう少し詳しくコメントできると思います。
補足コメント
mtoyo88

お礼率 71% (5/7)

回答ありがとうございます。下記のようなコーディングにしてみましたが、やっぱり上記と同様のエラーが発生しました。MoveLastは、サポートされていないというエラーが出ました。ミドルウェアって、compatible; MSIE 5.01; Windows NT) ということで宜しいんでしょうか?

rsRet.moveFirst
While Not rsRet.EOF
rsRet.moveNext
Wend
'rsRet.moveLast
rsRet.moveFirst
nCltCnt = 0
If Not rsRet Is Nothing Then
nCltCnt = rsRet.Count
End If
投稿日時 - 2001-08-24 13:42:51
  • 回答No.2
レベル8

ベストアンサー率 65% (19/29)

データベースとの接続はどのようにしていますか? ADO? DAO? などなど。。。 それによって使えるメソッドも違ってきますよね? ...続きを読む
データベースとの接続はどのようにしていますか?
ADO?
DAO?

などなど。。。

それによって使えるメソッドも違ってきますよね?
お礼コメント
mtoyo88

お礼率 71% (5/7)

回答ありがとうございます。

現在、ADOを使用してます。ただ将来的にはRDOに変更する可能性がありますので、できれば各々で使用可能なメソッドを教えて頂けると助かります。
投稿日時 - 2001-08-24 18:23:22
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ