0

SQL データベースから ASP 経由でストアド プロシージャにアクセスする際に問題があります。これはレコードセットの私のコードです:

Dim com_AntwoordenPerVraag__mem_id
com_AntwoordenPerVraag__mem_id = "0"
If Session("MM_MemberID") <> "" Then
    com_AntwoordenPerVraag__mem_id = Session("MM_MemberID")
End If

Dim com_AntwoordenPerVraag__cat_id
com_AntwoordenPerVraag__cat_id = "0"
If Request.QueryString("cat_id") <> "" Then
    com_AntwoordenPerVraag__cat_id = Request.QueryString("cat_id")
End If

set com_AntwoordenPerVraag = Server.CreateObject("ADODB.Command")
com_AntwoordenPerVraag.ActiveConnection = MM_modular_STRING
com_AntwoordenPerVraag.CommandText = "dbo.spAantal_antwoorden_per_vraag_per_member"
com_AntwoordenPerVraag.Parameters.Append com_AntwoordenPerVraag.CreateParameter("@RETURN_VALUE", 3, 4)
com_AntwoordenPerVraag.Parameters.Append com_AntwoordenPerVraag.CreateParameter("@mem_id", 3, 1,2,com_AntwoordenPerVraag__mem_id)
com_AntwoordenPerVraag.Parameters.Append com_AntwoordenPerVraag.CreateParameter("@cat_id", 3, 1,2,com_AntwoordenPerVraag__cat_id)
com_AntwoordenPerVraag.CommandType = 4
com_AntwoordenPerVraag.CommandTimeout = 0
com_AntwoordenPerVraag.Prepared = true
set rs_AntwoordenPerVraag = com_AntwoordenPerVraag.Execute

rs_AntwoordenPerVraag_numRows = 0

次のエラー メッセージが表示されます。

ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

ここにメッセージが表示されます:

If rs_AntwoordenPerVraag.EOF And rs_AntwoordenPerVraag.BOF Then

編集

解決策を見つけました。

後:

set rs_AntwoordenPerVraag = com_AntwoordenPerVraag.Execute

置いた:

If rs_AntwoordenPerVraag.State <> 1 Then
While rs_AntwoordenPerVraag.State <> 1
Set rs_AntwoordenPerVraag = rs_AntwoordenPerVraag.NextRecordset
Wend
End If

そして今、それは動作します:-)

4

3 に答える 3

1

コマンドconnectionには、単なる接続文字列ではなく、オブジェクトが必要であり、それを開く必要があります。

http://support.microsoft.com/kb/300382を参照してください。

さらに、ADODB 定数ファイルをインポートして使用すると、コードがより明確になります (例: http://www.4guysfromrolla.com/webtech/faq/Beginner/faq7.shtml ) 。

于 2013-08-08T13:16:23.207 に答える