ASP MSSQL存储过程的实现小例

  sql

  

复制代码 代码如下:

  CREATE PROCEDURE Proname //使用CREATE PROCEDURE 创建存储过程 Proname为存储过程名称

  @Lname VARCHAR(30) //定义传入的参数

  AS

  SET NOCOUNT ON

  BEGIN

  SELECT * FROM TableName WHERE Lname like '%'+@Lname+'%' //使用SELECE模糊查询Lname值与传入参数Lname的值相近所有行

  END

  GO

  以上就是已经创建了一个带一个输入参数的存储过程,并且返回所有查询的记过集。

  下面就开始使用ASP操作这个存储过程。

  

复制代码 代码如下:

  //下面是建立与MSSQL SERVER连接的字符串,大家都知道,我就不讲了。

  strConnect = "Driver={SQL Server};Server=(local);uid=sa;password=;database=dataname"

  Set conn = server.CreateObject ("Adodb.Connection")

  conn.Open strConnect

  SET cmd = Server.CreateObject("ADODB.Command") //建立一个COMMAND命令对象

  with cmd

  cmd.ActiveConnection = conn //conn为连接字符串

  cmd.CommandText = "Proname" //这里为要使用的存储过程名称

  cmd.CommandType = 4 //CommandType属性表明请求的类型。

  //-1 表明CommandText参数的类型无法确定

  //1 表明CommandText是一般的命令类型

  //2 表明CommandText参数是一个存在的表名称

  //4 表明CommandText参数是一个存储过程的名称,所以这里CommandType = 4。

  cmd.Prepared = true //要求将SQL命令先编译

  cmd.Parameters.append cmd.CreateParameter("@Lname",3,1,4,Lname) //添加参数@Lname,后面的Lname是自己在ASP页面里定义的变量。

  Set rs = cmd.Execute //设置rs变量取得返回的查询纪录集。

  end with

  DO WHILE NOT rs.EOF //用DO循环读出rs纪录集里面的行

  RESPONSE.WRITE(rs("字段名")"<BR />")

  rs.MOVENEXT //移动到下一条

  LOOP //结束循环

  rs.CLOSE //关闭对象