ASP调用SQL SERVER存储程序

时间:2022-08-29 10:47:19

调用数据库存储过程

  1. <%  
  2.     Set Dataconn = Server.CreateObject("ADODB.Connection")   
  3.     '建立连接对象  
  4.     Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"  
  5.     Set cmdTemp = Server.CreateObject("ADODB.Command")  
  6.     '建立命令对象  
  7.     Set rst = Server.CreateObject("ADODB.Recordset")   
  8.     '建立记录集对象  
  9.     cmdTemp.CommandText = "dbo.pd_test" '存储过程名称  
  10.     cmdTemp.CommandType = 4   
  11.     '命令类别为4,表示为存储过程  
  12.     Set cmdTemp.ActiveConnection = Dataconn  
  13.     Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)  
  14.     cmdTemp.Parameters.Append tmpParam  
  15.     Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)   
  16.     '创建输入参数对象  
  17.     cmdTemp.Parameters.Append tmpParam  
  18.     rst.Open cmdTemp, , 1, 3      
  19.     '生成查询结果  
  20. %>  

这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:

  1. <% 
  2.  
  3. SetDataconn=Server.CreateObject("ADODB.Connection"
  4.  
  5. '建立连接对象 
  6.  
  7. Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes" 
  8.  
  9. ss="EXECUTEdbo.pd_test"&"'"&riqi1&"'" 
  10.  
  11. Setrs=dataconn.Execute(ss) 
  12.  
  13. %>