有關(guān)本文的 Microsoft Visual Basic .NET 版本,請參閱
306574 (http://support.microsoft.com/kb/306574/)。
本文演示了使用 ActiveX 數(shù)據(jù)對象 (ADO) 從 Active Server Pages 調(diào)用存儲過程的三種方法。
下面的示例使用 Command 對象調(diào)用示例存儲過程 sp_test。此存儲過程接受整數(shù),同時返回一個整數(shù)值:
<%@ LANGUAGE="VBSCRIPT" %><!--#include virtual="/ASPSAMP/SAMPLES/ADOVBS.INC"--><HTML><HEAD><TITLE>Place Document Title Here</TITLE></HEAD><BODY>This first method queries the data source about the parametersof the stored procedure. This is the least efficient method of callinga stored procedure.<BR><%Set cn = Server.CreateObject("ADODB.Connection")Set cmd = Server.CreateObject("ADODB.Command")cn.Open "data source name", "userid", "password"Set cmd.ActiveConnection = cncmd.CommandText = "sp_test"cmd.CommandType = adCmdStoredProc‘ Ask the server about the parameters for the stored proccmd.Parameters.Refresh‘ Assign a value to the 2nd parameter.‘ Index of 0 represents first parameter.cmd.Parameters(1) = 11cmd.Execute%>Calling via method 1<BR>ReturnValue = <% Response.Write cmd.Parameters(0) %><P><!-- ************************************************************ -->Method 2 declares the stored procedure, and then explicitly declaresthe parameters.<BR><%Set cn = Server.CreateObject("ADODB.Connection")cn.Open "data source name", "userid", "password"Set cmd = Server.CreateObject("ADODB.Command")Set cmd.ActiveConnection = cncmd.CommandText = "sp_test"cmd.CommandType = adCmdStoredProccmd.Parameters.Append cmd.CreateParameter("RetVal", adInteger, _adParamReturnValue)cmd.Parameters.Append cmd.CreateParameter("Param1", adInteger, _adParamInput)‘ Set value of Param1 of the default collection to 22cmd("Param1") = 22cmd.Execute%>Calling via method 2<BR>ReturnValue = <% Response.Write cmd(0) %><P><!-- ************************************************************ -->Method 3 is probably the most formal way of calling a stored procedure.It uses the canocial<%Set cn = Server.CreateObject("ADODB.Connection")cn.Open "data source name", "userid", "password"Set cmd = Server.CreateObject("ADODB.Command")Set cmd.ActiveConnection = cn‘ Define the stored procedure‘s inputs and outputs‘ Question marks act as placeholders for each parameter for the‘ stored procedurecmd.CommandText = "{?=call sp_test(?)}"‘ specify parameter info 1 by 1 in the order of the question marks‘ specified when we defined the stored procedurecmd.Parameters.Append cmd.CreateParameter("RetVal", adInteger, _adParamReturnValue)cmd.Parameters.Append cmd.CreateParameter("Param1", adInteger, _adParamInput)cmd.Parameters("Param1") = 33cmd.Execute%>Calling via method 3<BR>ReturnValue = <% Response.Write cmd("RetVal") %><P></BODY></HTML>
請注意,上面的示例使用了訪問 Command 對象的 Parameters 集合的各種方法。有些方法使用 Command 對象的默認(rèn)集合,
而其他方法指定了要訪問的特定集合的屬性。
這篇文章中的信息適用于:
• | Microsoft Active Server Pages 4.0 |
• | Microsoft ActiveX Data Objects 2.0 |
• | Microsoft ActiveX Data Objects 2.7 |
• | Microsoft ActiveX Data Objects 2.7 |
• | Microsoft ActiveX Data Objects 2.5 |
• | Microsoft ActiveX Data Objects 2.6 |
• | Microsoft ActiveX Data Objects 2.7 |