|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了存储历程|纪录集假定有以下存储历程(本文的目标不在于报告T-SQL语法,以是存储历程只给出代码,不作申明):
/*SP1*/
CREATEPROCEDUREdbo.getUserList
as
setnocounton
begin
select*fromdbo.[userinfo]
end
go
以上存储历程获得userinfo表中的一切纪录,前往一个纪录集。经由过程command工具挪用该存储历程的ASP代码以下:
**经由过程Command工具挪用存储历程**
DIMMyComm,MyRst
SetMyComm=Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection=MyConStrMyConStr是数据库毗连字串
MyComm.CommandText="getUserList"指定存储历程名
MyComm.CommandType=4标明这是一个存储历程
MyComm.Prepared=true请求将SQL命令先行编译
SetMyRst=MyComm.Execute
SetMyComm=Nothing
存储历程获得的纪录集赋给MyRst,接上去,能够对MyRst举行操纵。
在以上代码中,CommandType属性标明哀求的范例,取值及申明以下:
-1标明CommandText参数的范例没法断定
1标明CommandText是一样平常的命令范例
2标明CommandText参数是一个存在的表称号
4标明CommandText参数是一个存储历程的称号
还能够经由过程Connection工具或Recordset工具挪用存储历程,办法分离以下:
**经由过程Connection工具挪用存储历程**
DIMMyConn,MyRst
SetMyConn=Server.CreateObject("ADODB.Connection")
MyConn.openMyConStrMyConStr是数据库毗连字串
SetMyRst=MyConn.Execute("getUserList",0,4)最初一个参断寄义同CommandType
SetMyConn=Nothing
**经由过程Recordset工具挪用存储历程**
DIMMyRst
SetMyRst=Server.CreateObject("ADODB.Recordset")
MyRst.open"getUserList",MyConStr,0,1,4
MyConStr是数据库毗连字串,最初一个参断寄义与CommandType不异
2.没有输出输入的存储历程
请看以下存储历程:
/*SP2*/
CREATEPROCEDUREdbo.delUserAll
as
setnocounton
begin
deletefromdbo.[userinfo]
end
go
该存储历程删往userinfo表中的一切纪录,没有任何输出及输入,挪用办法与下面讲过的基础不异,只是不必获得纪录集:
**经由过程Command工具挪用存储历程**
DIMMyComm
SetMyComm=Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection=MyConStrMyConStr是数据库毗连字串
MyComm.CommandText="delUserAll"指定存储历程名
MyComm.CommandType=4标明这是一个存储历程
MyComm.Prepared=true请求将SQL命令先行编译
MyComm.Execute此处不用再获得纪录集
SetMyComm=Nothing
固然也可经由过程Connection工具或Recordset工具挪用此类存储历程,不外创建Recordset工具是为了获得纪录集,在没有前往纪录集的情形下,仍是使用Command工具吧。
3.有前往值的存储历程
在举行相似SP2的操纵时,应充实使用SQLServer壮大的事件处置功效,以保护数据的分歧性。而且,我们大概必要存储历程前往实行情形,为此,将SP2修正以下:
/*SP3*/
CREATEPROCEDUREdbo.delUserAll
as
setnocounton
begin
BEGINTRANSACTION
deletefromdbo.[userinfo]
IF@@error=0
begin
COMMITTRANSACTION
return1
end
ELSE
begin
ROLLBACKTRANSACTION
return0
end
return
end
go
以上存储历程,在delete顺遂实行时,前往1,不然前往0,并举行回滚操纵。为了在ASP中获得前往值,必要使用Parameters汇合来声明参数:
**挪用带有前往值的存储历程并获得前往值**
DIMMyComm,MyPara
SetMyComm=Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection=MyConStrMyConStr是数据库毗连字串
MyComm.CommandText="delUserAll"指定存储历程名
MyComm.CommandType=4标明这是一个存储历程
MyComm.Prepared=true请求将SQL命令先行编译
声明前往值
SetMypara=MyComm.CreateParameter("RETURN",2,4)
MyComm.Parameters.AppendMyPara
MyComm.Execute
获得前往值
DIMretValue
retValue=MyComm(0)或retValue=MyComm.Parameters(0)
SetMyComm=Nothing
在MyComm.CreateParameter("RETURN",2,4)中,各参数的寄义以下:
第一个参数("RETURE")为参数名。参数名能够恣意设定,但一样平常应与存储过程当中声明的参数名不异。此处是前往值,我习气上设为"RETURE";
第二个参数(2),标明该参数的数据范例,详细的范例代码请参阅ADO参考,以下给出经常使用的范例代码:
adBigInt:20;
adBinary:128;
adBoolean:11;
adChar:129;
adDBTimeStamp:135;
adEmpty:0;
adInteger:3;
adSmallInt:2;
adTinyInt:16;
adVarChar:200;
关于前往值,只能取整形,且-1到-99为保存值;
第三个参数(4),标明参数的性子,此处4标明这是一个前往值。此参数取值的申明以下:
0:范例没法断定;1:输出参数;2:输出参数;3:输出或输入参数;4:前往值
以上给出的ASP代码,应当说是完全的代码,也即最庞大的代码,实在
SetMypara=MyComm.CreateParameter("RETURN",2,4)
MyComm.Parameters.AppendMyPara
能够简化为
MyComm.Parameters.AppendMyComm.CreateParameter("RETURN",2,4)使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。 |
|