 |
建站必读 |
 |
|
|
 |
|
 |
|
| |
| 当前位置:首页 -> 建站必读 -> ASP技术 |
|
WebComputing━ADO总结报告5 |
五、StoredProcedure
在讨论StoredProcedure之前,我还要对Command对象的Execute方法的作用进行一下阐述,一般来说使用Command的Execute方法有三个目的。1、用于进行一些简单的处理,例如删除一条记录:
comm.CommandType=AdCmdText
comm.CommandText="Delect From employee Where Job_ID=1"
comm.execute
这样的工作不需要返回什么东西。2、用于进行一些复杂的处理,例如进行一个Transact的设计,这类一般都是和StoredProcedure一同工作的,而且有输出参数和输入的参数,这也是我们本章的讨论主题。3、用于返回一个RecordSet对象,用于其它的处理,例如:
comm.CommandType=AdCmdText
comm.CommandText="Delect From employee Where Job_ID=1"
set rs=comm.execute
dim i
while not rs.EOF
for i=0 to rs.fileds.count-1
response.write rs.fileds.item(i).value&","
next
response.write "<br>"
rs.MoveNext
wend
好了,还是让我们从新回到StoredProcedure的讨论上来。StoredProcedure是什么呢?它是一个预先存储的数据库执行动作集,在SQL的管理结构中,对于一个数据库下有几个部分,一个是数据表的集合、一个就是StoredProcedure的集合。将两者结合可以完成很多强大的功能。StoredProcedure其实是对传统的SQL语句的一种扩展,主要是在参数的输入与输出上。下面我大致的介绍一下StoredProcedure的语法结构和与Command对象的参数的传递问题。
StoredProcedure的标准写法:(在SQL Server上用Query Analyzer执行)
Create Procedure Procedure_Name
Define Parameter
As
SQL Structure
上 面的语法结构中,Procedure_Name为存储结构的的名字,也是你将在Command中引用的名字。然后是定义输出和输入的参数。最后是一个SQL结构化语句。下面是一个StoredProcedure的例子,它无需输入的参数,也没有输出。
Create Procedure Del_User
As
Delect From Employee Where Job_ID=1
如果我们要删除指定的 Job_ID该怎么办呢?,这时我们需要给这个StoredProcedure输入的参数。
Create Procedure Del_User1
@intID int
As
Delect From Employee Where Job_Id = @intID
好了,这里的@intJob就是一个输入的参数,它可以从外部接受输入的值,下面是给它输入的asp程序:
set conn=Server.CreateObject("ADODB.Connection")
set comm=Server.CreateObject("ADODB.Command")
conn.ConnectionString="Driver={SQL Server};Server=ser;"& _
"uid=sa;pass=;database=employee "
conn.open
comm.ActiveConnection=conn
comm.CommandType=adCmdStoredProc
comm.CommandType="Del_User1"
"这里的名字就是前面在SQL Server中定义过的StoredProcedure的名字。
"下面就是参数的输入
param=comm.CreateParameter("ID",adInt,adParamInput,4)
"这里的adParamInput定义是最重要的。
Param.Value=1 "这里的值可以输入你想要的值,也可以用Request来获得
Comm.Parameters.Append param
Comm.Execute
这样我们就可以向StoredProcedure传递参数了。有时在一个StoredProcedure中,还存在有输出的参数,下面是一个例子它返回一个Job_ID确定的Fri_Name的值
Create Procedure Get_fName
@intID int
@fName varChar Output "说明为输出的参数
As
Select @fName = Fri_Name Where Job_ID = @intID
它相应的asp程序也要改写为下面的形式
set conn=Server.CreateObject("ADODB.Connection")
set comm=Server.CreateObject("ADODB.Command")
conn.ConnectionString="Driver={SQL Server};Server=ser;"&_
"uid=sa;psss=;database=employee"
conn.open
comm.ActiveConnection=conn
comm.CommandType=adCmdStoredProc
comm.CommandType="Get_fName"
"这里的名字就是前面定义过的StoredProcedure的名字。
"下面就是参数的输入
param=comm.CreateParameter("ID",adInt,adParamInput,4)
"这里的adParamInput定义是最重要的。
Param.Value=2 "这里的值可以输入你想要的值,也可以用Request来获得
Comm.Parameters.Append param
param=comm.CreateParameter("fName",adVarchar,adParamOutput,255,"")
"这里的adParamOutput定义是最重要的。说明它是一个输出的参数,默认的值 为一空的字符串
comm.Parameters.Append param
Comm.Execute
Response.Write "Job_Id为"¶m(0)&"的员工的首姓为"¶m(1)
j |
| |
|
| |
本站关键词: |
|
|
|
|
 |
|
 |
|