当前位置: 首页 > 图文教程 > 网络编程 > ASP > SQL存储过程初探

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

ASP 中的 SQL存储过程初探


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 104 ::
收藏到网摘: n/a

前言

一直用ASP+ACCESS来编写网页和公司的内部应用系统,内部应用系统也就是大家说的OA吧,这个我也不知道,公司又叫它ERP,反正不管什么,它是用来帮助公司处理日常工作的,简化劳动的.从来没用过存储过程,所有的添加,删除,修改都是在ASP里面写程序执行,代码很多.数据量少的时候没什么感觉,挺快的,可等到数据量大的时候,上W条记录查询,尤其是不分页都显示在一页里的时候情况就出现了,速度很慢,要10几秒才有反应,所以想到了要用SQL的存储过程来简化代码和加快程序的执行速度!

在学习了51JS里的一篇教程SQL SERVER数据库开发之存储过程应用又在QQ里大侠的指导下终于有点入门,下边是我的学习笔记,有问题欢迎大家一起讨论!~

1.ASP调用存储过程

首先在SQL里建立一个数据库叫it,怎么建我就不说了,这个简单,一看就知道了。然后在库里建个表,写几个数据记录,如下:




打开查询分析器:

在里边写下如下语句点击绿色按钮执行它:

你到数据库的存储过程里面看,已经多了一个名为upGetUserName的存储过程了表明已经成功的建立了存储过程,如果没有,试着刷新下。



下面用ASP来调用它:
CONN文件(连接数据库)如下:

复制代码 代码如下:

<%
set db=server.createobject("adodb.connection")
db.Open ("driver={SQL Server};server=192.168.18.254;uid=sa;pwd=;database=it;")
%>

192.168.18.254为SQL SERVER服务器的IP地址,uid pwd it 分别为连接数据库的用户和密码及所要连的数据库
新建一个index.asp文件,内容如下:
复制代码 代码如下:

<!--#include file="conn.asp" -->
<%
set rs=server.createobject("adodb.recordset")
sql = "exec upGetUserName"
rs.open sql,db,3,2
response.write rs.recordcount&"<br>"
while not rs.eof
response.write rs("uname")&"<br>"
rs.movenext
wend
response.End
%>

在浏览器中执行这个页面如果显示如下:

那么恭喜你,成功了!
上面是不带参数的存储过程调用,但我们在使用中一定会有参数的,下面就来介绍一个有参数的。
还是上边的例子,我们把原来的存储过程改成这样:

复制代码 代码如下:

CREATE PROC upGetUserName
@intUserId NVARCHAR(50),
@intUserpass NVARCHAR(50)
AS
BEGIN
SELECT uname FROM users WHERE uId=@intUserId and pass=@intUserpass
END
GO

可以把原来的存储过程删除,然后把这个写在查询分析器里来执行,也可以直接在原来的存储过程里改。
@intUserId NVARCHAR(50),
@intUserpass NVARCHAR(50)
是要传送进来的参数,@是必须的,因为有两个,所以之间用“,”来分隔
index文件改成如下
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

注意:sql = "exec upGetUserName 'snake','snake'"
两个snake不是一个意思,一个是uid,一个是pass,存储过程返回的是uid="snake"并且pass="snake"的记录
数据库里只有一条这样的记录,所以会显示:

OK,你已经入门了!就这么简单!