- ベストアンサー
ASP レコードセットしたオブジェクトを戻り値に出来ませんか?
ASPは本当にドキュメントが少なく困っています。 ---Main.asp---------------------------------- Dim RetRec 'DB接続 Call DBOpen() 'SQL文 strSQL = "SELECT・・・・" 'レコードオープン実行 Set RetRec = RecOpen(strSQL) 'レコードカウント取得 RecCnt = RetRet.RecordCount ・ ・ ・ --DBCon.asp-------------------------- Public Function RecOpen(SQLPrm) 'オブジェクト宣言 Set G_RecMap = Server.CreateObject("ADODB.Recordset") 'レコードオープン G_RecMap.Open SQLPrm, G_Conn, 3, 3, 1 '復帰値作成 RecOpen = G_RecMap Exit Function End Function ----------------------------------------- エラー内容 オブジェクトでサポートされていないプロパティまたはメソッドです。: 'RecordCount' ・・・当然のことながら、復帰値をオブジェクトとして 拾っていないので、上記エラーが表示された。 ------------------------------------------- 上記のようにレコードセットしたオブジェクトは返せますでしょうか?同じ要領で行うと上手く行かないのですが。。。お手数ですが、よろしくお願いします Sessionの使用は禁止となっています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ASPは本当にドキュメントが少なく困っています。 そうかなぁ…。MSサイトのMSDN Libraryに大抵の事は載ってますよ。 個人のサイトもたくさんあるし。。。 これでは如何でしょうか?(インデントのため全角スペース使用) Public Function RecOpen(SQLPrm) Set G_RecMap = Server.CreateObject("ADODB.Recordset") G_RecMap.Open SQLPrm, G_Conn, 3, 3, 1 Set RecOpen = G_RecMap ' ** ← ここ直しました End Function ところで上記関数にConnectionをCreateしている箇所がないのですが それはいいのかな? 見当違いならごめんなさいませ。頑張ってくださいm(_ _)m
その他の回答 (1)
- o84
- ベストアンサー率31% (128/407)
ちなみに、そのSQL文で、値はちゃんと取れてるのですか? 関数の中に入れないで、ずらずらっと書いた場合には ちゃんとRecordSetは取れているのでしょうか? 話はそれからです。 参照渡しとスコープの問題かなーという気もちょっとしますが、 まずは上記の確認をすることですね。 ----- えー、ASPの本はその辺の本屋に行けば簡単なものから 懇切丁寧なものまで、たくさんあるはずですよ(^^)。
お礼
ありがとうございます。本を購入し、まずは皆様にご迷惑をかけないように致します
補足
>ちなみに、そのSQL文で、値はちゃんと取れてるのですか? はい、確認は取れています。 >関数の中に入れないで、ずらずらっと書いた場合には >ちゃんとRecordSetは取れているのでしょうか? RecOpen(strSQL)関数内のレコードセットのオブジェクト をSession渡しした場合、Recordcountは取れました。 [Set Session("gRec") = Server.CreateObject("ADODB.Recordset")]
お礼
ありがとうございます。この内容についてさらにご質問がございます。よろしければご協力いただけませんでしょうか?ここでの質問は内容は理解できましたので、しみきりさせていただきます。