- ベストアンサー
ASP上のVB SCRIPT記述(result setからcountを取得する方法)
- ASP上でVB SCRIPTを使ってresult setからcountを取得する方法について分かりません。エラーメッセージが表示されています。
- 記述したコードにエラーがあります。オブジェクトでサポートされていないプロパティまたはメソッドです。
- サポートされていない場合には、代替の方法でresult setから件数を取得する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>現在、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」でヘルプが見つかると思います。
その他の回答 (2)
- yoshisuke
- ベストアンサー率65% (19/29)
データベースとの接続はどのようにしていますか? ADO? DAO? などなど。。。 それによって使えるメソッドも違ってきますよね?
お礼
回答ありがとうございます。 現在、ADOを使用してます。ただ将来的にはRDOに変更する可能性がありますので、できれば各々で使用可能なメソッドを教えて頂けると助かります。
- msystem
- ベストアンサー率42% (79/186)
レコードセットオブジェクトが、どれを使っているか分かりませんが、レコードセットは、一度、MoveLastメソッドなどで、一番後ろのレコードまで動かさないと、Countプロパティでレコード数は取れません。 エラーメッセージが、それにあたるかどうかは分かりませんが、どのミドルウェアのレコードセットかを教えていただければ、もう少し詳しくコメントできると思います。
補足
回答ありがとうございます。下記のようなコーディングにしてみましたが、やっぱり上記と同様のエラーが発生しました。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
お礼
ありがとうございます。やっと意味が分かった気がします。 助かりました。