set cmd=server.CreateObject("adodb.command")
">

ASP存储过程的使用

80酷酷网    80kuku.com

  存储过程

   1、调用没有参数的存储过程

  <%
  set conn=server.CreateObject("adodb.connection")
  set cmd=server.CreateObject("adodb.command")
  strconn="dsn=pubs;uid=sa;pwd"
  conn.Open strconn
  set cmd.ActiveConnection=conn
  
  cmd.CommandText="{call nono}"
  
  'set rs=cmc.exe 或者cmd.execute
  
  set rs=cmd.Execute()
  
  %>

  2、一个输入的参数的存储过程

  <%
  set conn=server.CreateObject("adodb.connection")
  set cmd=server.CreateObject("adodb.command")
  strconn="dsn=pubs;uid=sa;pwd"
  
  conn.Open strconn
  set cmd.ActiveConnection=conn
  
  cmd.CommandText="{call oneinput(?)}"
  cmd.Parameters.Append cmd.CreateParameter("aaa",adInteger ,adParamInput )
  cmd("aaa")=100
  
  cmd.Execute()
  
  %>

  3、一个输入参数和一个输出的参数

  <%
  set conn=server.CreateObject("adodb.connection")
  set cmd=server.CreateObject("adodb.command")
  strconn="dsn=pubs;uid=sa;pwd"
  
  conn.Open strconn
  set cmd.ActiveConnection=conn
  
  cmd.CommandText = "{call oneinout(?,?)}"
  cmd.Parameters.Append cmd.CreateParameter("aaa",adInteger,adParamInput)
  cmd("aaa")=10
  cmd.Parameters.Append cmd.CreateParameter("bbb",adInteger,adParamOutput)
  
  cmd.Execute()
  
  bbb=cmd("bbb")
  %>

  4、一个输入参数,一个输出参数,和一个返回值

  <%
  set conn=server.CreateObject("adodb.connection")
  set cmd=server.CreateObject("adodb.command")
  strconn="dsn=pubs;uid=sa;pwd"
  
  conn.Open strconn
  set cmd.ActiveConnection=conn
  
  cmd.CommandText="{?=call onereturn(?,?)}"
  
  cmd.Parameters.Append cmd.CreateParameter("return_value",adInteger,adParamReturnValue )
  cmd.Parameters.Append cmd.CreateParameter("aaa",adInteger,adParamInput )
  cmd("aaa")=10
  cmd.Parameters.Append cmd.CreateParameter("bbb",adInteger,adParamOutput)
  
  cmd.Execute()
  
  bbb=cmd("bbb")
  rrr=cmd("return_value")
  %> 

  如何在ASP中调用SQL存储过程

  <%set connection1 = Server.CreateObject("ADODB.Connection")
  connection1.open ... '联接
  set command1=Server.CreateObject("ADODB.command")
  set command1.activeconnection=connection1
  command1.commandtype=4
  command1.commandtext="sp_1" 'SP 名
  command1.parameters(1)=... '参数值
  command1.parameters(2)=...
  set recordset1=command1.execute()
  %> 

  ASP调用存储过程的技巧

  1、最简单的如下

   Dim objConn
   Set objConn = Server.CreateObject("ADOBD.Connection")
   objConn.Open Application("Connection_String")
   'Call the stored procedure to increment a counter on the page
   objConn.Execute "exec sp_AddHit"

   没有参数,没有返回,没有错误处理,就是这个了

   2、带参数的一种调用

   objConn.Execute "exec sp_AddHit 'http://www.aspalliance.com', 1"

   请注意分割参数,该方法也不返回记录
  
   3、返回记录的

   Dim objConn
   Dim objRs
   Set objConn = Server.CreateObject("ADOBD.Connection")
   Set objRs = Server.CreateObject("ADOBD.Recordset")
   objConn.Open Application("Connection_String")
   'Call the stored procedure to increment a counter on the page
   objRs.Open objConn, "exec sp_ListArticles '1/15/2001'"
   'Loop through recordset and display each article

   4、……

   Dim objConn
   Dim objCmd
  
   'Instantiate objects
   Set objConn = Server.CreateObject("ADODB.Connection")
   set objCmd = Server.CreateObject("ADODB.Command")
   conn.Open Application("ConnectionString")
  
   With objCmd
   .ActiveConnection = conn 'You can also just specify a connection string here
   .CommandText = "sp_InsertArticle"
   .CommandType = adCmdStoredProc 'Requires the adoVBs.inc file or typelib meta tag
  
   'Add Input Parameters
   .Parameters.Append .CreateParameter("columnist_id", adDouble, adParamInput, , columnist_id)
   .Parameters.Append .CreateParameter("url", adVarChar, adParamInput, 255, url)
   .Parameters.Append .CreateParameter("title", adVarChar, adParamInput, 99, url)
   .Parameters.Append .CreateParameter("description", adLongVarChar, _
   adParamInput, 2147483647, description)
  
   'Add Output Parameters
   .Parameters.Append .CreateParameter("link_id", adInteger, adParamOutput, , 0)
  
   'Execute the function
   'If not returning a recordset, use the adExecuteNoRecords parameter option
   .Execute, , adExecuteNoRecords
   link_id = .Parameters("link_id")
   End With

     5、存储过程的代码

   Create PROCEDURE dbo.sp_InsertArticle
   (
   columnist_id int,
   url varchar(255),
   title varchar(99),
   description text
   link_id int OUTPUT
   )
   AS
   BEGIN
   INSERT INTO dbo.t_link (columnist_id,url,title,description)
   VALUES (columnist_id,url,title,description)
  
   SELECT link_id = IDENTITY
   END

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: