1.
<%
Set Dataconn = Server.CreateObject("ADODB.Connection") '建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
Set cmdTemp = Server.CreateObject("ADODB.Command") '建立命令对象
Set rst = Server.CreateObject("ADODB.Recordset") '建立记录集对象
cmdTemp.CommandText = "dbo.pd_test" '存储过程名称
cmdTemp.CommandType = 4 '命令类别为4,表示为存储过程
Set cmdTemp.ActiveConnection = Dataconn
Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)
cmdTemp.Parameters.Append tmpParam
Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)
'创建输入参数对象
cmdTemp.Parameters.Append tmpParam
rst.Open cmdTemp, , 1, 3 '生成查询结果
%>
这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:
<%
Set Dataconn = Server.CreateObject("ADODB.Connection") '建立连接对象
Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"
Set rs = dataconn.Execute(ss)
%>
2.
<!-- #include file="../PUBLIC/database.asp" -->
<%'=====在ASP脚本中调用数据库存储过程=============================================
openDB '====打开数据库连接====
Set Comm=server.CreateObject("ADODB.Command")
Set Comm.ActiveConnection=objconn
Comm.CommandType=adCmdStoredProc '==调用类型未存储过程==
Comm.CommandText="RegisterUser" '===存储过程名称======%>
<% '=======创建存储过程返回参数对象====
'Set RetCode=Comm.CreateParameter("RetCode",adInteger,adParamReturnValue,4)
%>
<% '=======创建存储过程输入参数对象====
Comm.Parameters.Append Comm.CreateParameter("@usrname",200,1,100,txt_qyname)
Comm.Parameters.Append Comm.CreateParameter("@usrcode",200,1,50,txt_qycode)
%>
<%
set rs3= Comm.Execute '====创建记录集对象======
ReValue=rs3("ReValue")
Qy_id=rs3("Qy_id")
Qy_pwd=rs3("Qy_pwd")
%>
<%'====根据数据库存储过程返回代码判断注册是否成功==== %>
<% if ReValue< 0 then %>
<% response.Write("<center>注册失败,可能是系统太忙或网络故障,请重新注册!<a href=javascript:history.go(-1)>返回</a></center>") %>
<%else %>
<% response.Write("<center>恭喜您,企业注册成功!<br/></center>")
response.write("<center>您的用户名为:"&Qy_id&"<br/></center>")
response.write("<center>您的密码为:"&Qy_pwd&"<br/></center>")
response.write("<center>为了方便和安全,请登录系统后更改您的用户名和密码并且牢记他们!<a href=qy_login.htm>登录系统</a><br/></center>")
end if
%>
<% '=========释放资源===========
closeDB
set rs3=nothing
set Comm.ActiveConnection=nothing
set Comm=nothing
'=====================================存储过程调用结束=========================== %>
3.<%@ Language=VBScript %>
<%
'---开始链接数据库
Dim strConnString
strConnString = "driver={SQL Server};server=songhp;uid=sa;pwd=;database=XVZDemo"
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnstring
'---结束链接数据库
'---开始为输入参数赋值
Dim SelectSql , SelectRs
Dim SelectID , SelectName , SelectReturn
SelectSql = "Select Max(CompanyID) From Dim_Company"
Set SelectRs = Conn.Execute(SelectSql)
SelectID = SelectRs(0)
'---结束为输入参数赋值
Dim TiggerType
TiggerType = 3
Set Cmd = Server.CreateObject("ADODB.Command")
Set Cmd.ActiveConnection = Conn
Cmd.CommandType = 4 '---声明此过程为存储过程
If TiggerType = 1 then
'---开始一个输入参数的存储过程调用
Cmd.CommandText = "TransCompany1"
Set CmdParam = Cmd.CreateParameter("@TransID",3,1)
Cmd.Parameters.Append CmdParam
Cmd("@TransID") = SelectID
Cmd.Execute
'---结束一个输入参数的存储过程调用
Elseif TiggerType = 2 then
'---开始一个输入参数,一个输出参数的存储过程调用
Cmd.CommandText = "TransCompany2"
Set CmdParamID = Cmd.CreateParameter("@TransID",3,1)
Cmd.Parameters.Append CmdParamID
Cmd("@TransID") = SelectID
Set CmdParamName = Cmd.CreateParameter("@TransName",202,2,50)
Cmd.Parameters.Append CmdParamName
Cmd.Execute
SelectName = Cmd("@TransName")
'---结束一个输入参数,一个输出参数的存储过程调用
Elseif TiggerType = 3 then
'---开始一个输入参数,一个输出参数,一个返回值的存储过程调用
Cmd.CommandText = "TransCompany3"
Set CmdParamReturn = Cmd.CreateParameter("Return_Value",3,4)
Cmd.Parameters.Append CmdParamReturn
Set CmdParamID = Cmd.CreateParameter("@TransID",3,1)
Cmd.Parameters.Append CmdParamID
Cmd("@TransID") = SelectID
Set CmdParamName = Cmd.CreateParameter("@TransName",202,2,50)
Cmd.Parameters.Append CmdParamName
Cmd.Execute
SelectName = Cmd("@TransName")
SelectReturn = Cmd("Return_Value")
'---结束一个输入参数,一个输出参数,一个返回值的存储过程调用
End if
Conn.Close
Set Conn = Nothing
Set Cmd = Nothing
Set CmdParamID = Nothing
Set CmdParamname = Nothing
Set CmdParamReturn = Nothing
%>