ASPはSQLServerストレージプログラムを呼び出します
ソースhttp://www.bmj2000.com/vb/techniccolumn/subdetail.asp?mainid = 2&boardid=asp&itemid = %ca%fd%BE%DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD DD DD DD DD
データベースストアドプロシージャの呼び出し
<%
setDataconn = server.createObject( "adodb.Connection")
'接続オブジェクトを作成します
dataconn.open "dsn = sinotrans; server = app_server; uid = sa; pwd =; app = microsoft(r)developerstudio; wsid = app_server; regional = yes"
setcmdtemp = server.createObject( "adodb.command")
'コマンドオブジェクトを作成します
setrst = server.createObject( "adodb.recordset")
'レコードセットオブジェクトを作成します
cmdtemp.commandtext = "dbo.pd_test" 'ストアドプロシージャ名
cmdtemp.commandtype = 4
'コマンドカテゴリは4で、ストアドプロシージャとして示されます
setcmdtemp.activeconnection = dataConn
setmpparam = cmdtemp.createparameter( "returnValue"、3,4,4)
cmdtemp.parameters.appendtmpparam
setmpparam = cmdtemp.createparameter( "@begindate"、135,1,16、riqi)
'入力パラメーターオブジェクトを作成します
cmdtemp.parameters.appendtmpparam
rst.opencmdtemp、1,3
'クエリの結果を生成します
%>
ここで呼ばれるストアドプロシージャはPD_TESTです。これはADOで提供される標準的な方法です。ただし、問題があります。つまり、ストアドプロシージャに2つ以上の選択されたステートメントがある場合、同時に実行することは論理的に不可能である場合、ADOはストアドプロシージャに選択されたステートメントが多すぎることを促します。解決策は、次のように、ADOの接続オブジェクトの実行方法を使用してストアドプロシージャを直接実行することです。
<%
setDataconn = server.createObject( "adodb.Connection")
'接続オブジェクトを作成します
dataconn.open "dsn = sinotrans; server = app_server; uid = sa; pwd =; app = microsoft(r)developerstudio; wsid = app_server; regional = yes"
ss = "exectedbo.pd_test"& "'"&riqi1& "'" "
setrs = dataconn.execute(ss)
%>