论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp教程
Tag:入门,文摘,实例,技巧,iis,表单,对象,上传,数据库,记录集,session,cookies,存储过程,注入,分页,安全,优化,xmlhttp,fso,jmail,application,防盗链,stream,组件,md5,乱码,缓存,加密,验证码,算法,ubb,正则表达式,水印,,日志,压缩,url重写,控件,函数,破解,触发器,socket,ADO,初学,聊天室,留言本,视频教程

存储过程及ASP调用存储过程实现分页(二)

文章类别:Asp | 发表日期:2010-2-1 13:36:15

存储过程及ASP调用存储过程实现分页(二)

三、创建、修改、删除存储过程

有了刚才的准备工作,现在把重点放在说存储过程。

1、创建存储过程

创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。

可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。

语法:(注:更详细的说明请参考有关书籍或联机从书,按F1)

CREATE PROC [ EDURE ]   procedure_name

    [ { @parameter data_type }

        [ VARYING ] [ = default ] [ OUTPUT ]

    ] [ ,...n ]

[ WITH    { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

[ FOR REPLICATION ]

AS

sql_statement [ ...n ]

我们以前学过知道中括号[]的是可选的,所以最简单的可以简化为:

CREATE PROC procName

AS

sql_statement

其中:procName 就是存储过程名,sql_statement 也就是写Transact-SQL 语句用的。

注意:如果用户创建的存储过程与系统存储过程同名,则永远不执行用户创建的存储过程。

语法总是抽象难理解的,我们来个例子看看就容易理解。

①此存储过程的名字是testPROC1,他的功能是从testTable表中查询前50条记录的信息,也就是返回一个记录集。

Use Johnny

go

CREATE PROC testPROC1

AS

SELECT top 50 * FROM testable

这样存储过程就创建好了。

2、修改存储过程。

对已创建的存储过程觉得要修改时只要把CREATE改为ALTER就可以了。如修改①存储过程(其功能是删除testUser表的所以记录):

Use Johnny

go

ALTER PROC testPROC1

AS

DELETE FROM testUser

3、删除存储过程。

删除存储过程用命令DROP,即:

DROP PROC[DURE]{ procedure }

如删除①存储过程:

DROP PROC testPROC1

这样①存储过程就删除了。

到此,第一个知识点结束。

四、存储过程的类型及ASP调用实例说明

1、 只返回一个记录集的存储过程

此类型就比如①,现在我们创建个如:

①存储过程testPROC1 代码:

USE johnny

GO

CREATE PROC testPROC1

AS

DELETE FROM testUser

执行下。现在我们在ASP中对这个简单的存储过程进行调用:

②ASP代码:新建一个文件(推荐使用Dreamweaver),然后输入如下代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%

dim conn,connstr

on error resume next

set conn=server.CreateObject("adodb.connection")

connstr="Provider=SQLOLEDB;Server=.;Database=johnny;UID=sa;PWD=123"

conn.open connstr

if err then

err.clear

Set conn = Nothing

response.Write("数据库连接错误")

response.End()

end if

dim cmd,rs

set cmd = Server.CreateObject("ADODB.Command")

cmd.ActiveConnection = connstr '数据库连接字串

cmd.CommandText = "dbo.testPROC1"       '存储过程名

cmd.CommandType = 4 '使用的是存储过程

cmd.CommandTimeout = 0   '超时

cmd.Prepared = true      '将SQL命令先行编译

'cmd.Execute()      '如果是没有返回记录集recordset的(如删除等)直接用cmd.Execute()。

set rs=cmd.Execute()    '有返回记录集并赋给rs

set cmd=nothing

'显示数据信息

while not rs.eof

response.Write(rs(0)&rs(1)&rs(2)&rs(3)&"<hr />")

rs.movenext

wend

%>

看下效果:

说明:

注意:红色为连接数据库及创建对象,绿色为存储过程调用,以后存储过程调用时ASP页面都只写出调用的部分绿色代码,红色部分自己再加上去。

connstr="Provider=SQLOLEDB;Server=.;Database=johnny;UID=sa;PWD=123"

是假设你的SQL Server 2000/2005,在本地,数据库为johnny,用户sa,密码123

在以上代码中,CommandType属性表明请求的类型,取值及说明如下:
  -1 表明CommandText参数的类型无法确定
  1 表明CommandText是一般的命令类型
  2 表明CommandText参数是一个存在的表名称
  4 表明CommandText参数是一个存储过程的名称

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

将以上代码从

dim cmd,rs

……



set cmd=nothing

替换为:

(用Connection时)

Dim rs

set rs=conn.execute("dbo.testPROC1",0,4) '最后一个参断含义同CommandType

(用Recordset时)

set rs=server.CreateObject("adodb.recordset")

rs.open "dbo.testPROC1",connstr,0,1,4       '最后一个参断含义含义同CommandType

注意:这Connection对象或Recordset对象调用存储过程的不建议用,特别是在有参数传递的情况下。

以上是简单的存储过程及其在ASP中调用的详细操作。是引导大家入门,下面我们来看看稍微复杂点的也是实际应用中常用的存储过程。

视频教程列表
文章教程搜索
 
Asp推荐教程
Asp热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058