经验总结:ASP与存储过程解析(2)

作者:佚名 来源:knowsky.com 时间:2008-11-07 13:33:00 

还可以通过Connection对象或Recordset对象调用存储过程,方法分别如下:


'**通过Connection对象调用存储过程**
DIM MyConn,MyRst
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.open MyConStr 'MyConStr是数据库连接字串
Set MyRst = MyConn.Execute("getUserList",0,4) '最后一个参断含义同CommandType
Set MyConn = Nothing

'**通过Recordset对象调用存储过程**
DIM MyRst
Set MyRst = Server.CreateObject("ADODB.Recordset")
MyRst.open "getUserList",MyConStr,0,1,4
'MyConStr是数据库连接字串,最后一个参断含义与CommandType相同

2. 没有输入输出的存储过程
请看以下存储过程:


/*SP2*/
CREATE PROCEDURE dbo.delUserAll
as
set nocount on
begin
delete from dbo.[userinfo]
end
go

该存储过程删去userinfo表中的所有记录,没有任何输入及输出,调用方法与上面讲过的基本相同,只是不用取得记录集:


'**通过Command对象调用存储过程**
DIM MyComm
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr是数据库连接字串
MyComm.CommandText = "delUserAll" '指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
MyComm.Execute '此处不必再取得记录集
Set MyComm = Nothing

当然也可通过Connection对象或Recordset对象调用此类存储过程,不过建立Recordset对象是为了取得记录集,在没有返回记录集的情况下,还是利用Command对象吧。

3. 有返回值的存储过程

在进行类似SP2的操作时,应充分利用SQL Server强大的事务处理功能,以维护数据的一致性。并且,我们可能需要存储过程返回执行情况,为此,将SP2修改如下:


/*SP3*/
CREATE PROCEDURE dbo.delUserAll
as
set nocount on
begin
BEGIN TRANSACTION
delete from dbo.[userinfo]
IF @@error=0
begin
COMMIT TRANSACTION
return 1
end
ELSE
begin
ROLLBACK TRANSACTION
return 0
end
return
end
go

以上存储过程,在delete顺利执行时,返回1,否则返回0,并进行回滚操作。为了在ASP中取得返回值,需要利用Parameters集合来声明参数:

标签:
0
投稿

猜你喜欢

  • JavaScript的私有成员

    2009-03-25 20:45:00
  • 操作Dom节点实现间歇滚动新闻

    2009-10-16 20:51:00
  • YUI Compressor 组件压缩 JavaScript 的一些原理

    2009-08-02 20:22:00
  • 交互设计师的尴尬-我的强项是什么?

    2008-12-29 14:00:00
  • XAMPP和Mysql共存的方法

    2010-12-03 16:34:00
  • Oracle 10g的DBA无法登录解决方案

    2009-05-24 19:38:00
  • 丰富段落里的标签

    2008-03-16 14:11:00
  • Access函数大全

    2009-12-23 19:22:00
  • ASP中页面限权访问的几种方法

    2007-12-13 06:53:00
  • 使用FORFILES命令来删除SQLServer备份的批处理

    2012-05-08 06:47:06
  • 改变链接,让别人永远找不到你的程序

    2008-09-13 18:57:00
  • Dreamweaver技巧50问

    2008-10-16 14:00:00
  • 基于AJAX技术提高搜索引擎排名

    2008-01-24 12:45:00
  • Javascript 逗号“,”引发的血案

    2008-08-20 18:37:00
  • asp下用OracleInProcServer完成对Oracle的连接和操作

    2008-04-13 07:10:00
  • 运行(runCode)复制(copyCode)保存(saveCode)代码框方法

    2007-10-21 08:41:00
  • 随机显示图片

    2009-07-26 10:13:00
  • javascript彩虹圈效果

    2011-08-05 19:10:45
  • XML简易教程之三

    2008-09-05 17:19:00
  • 一些建站常用简单html代码

    2008-06-01 13:17:00
  • asp之家 网络编程 m.aspxhome.com