联系站长 加入收藏 设为首页 繁體中文 RSS
  首页 | 生活百科 | 电脑网络 | 高手学堂 | 语录名言 | 读书文学 | 极品软件 | 奇趣图片 | 站长微博  
 您的位置: 精品百字节网 >> 高手学堂 >> ASP高手进阶 >> 正文 当前没有通告!
   □  SQL存储过程初探   4星级
SQL存储过程初探
[ 作者:shuntianpeng     来源:蓝色理想     点击数:     更新时间:2008-03-11     文章录入:Admin
【字体:
[内容提要]
暂无简介

前言

一直用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文件改成如下:

<!--#include file="conn.asp" -->
<%
set rs=server.createobject("adodb.recordset")
sql = "exec upGetUserName 'snake','snake'"
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
%>

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

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

上一篇文章:web标准页面知识必备 下一篇文章:文章中的关键字替换方案
发表评论 □告诉好友 □打印此文 □收藏此页 □关闭窗口 □返回顶部
 最新热点文章
 kingcms批量替换Url目录格式思路
 添加删除Windows组件出错的解决方法
 IIS安装配置出现问题的解决办法
 ps中用钢笔画图锚点规律总绍
 Xp系统下如何架设网站站点?
 通过对页面进行压缩提高网站速度方案
 一些js代码,慢慢研究
 
 最新推荐文章
 添加删除Windows组件出错的解决方法
 IIS安装配置出现问题的解决办法
 ps中用钢笔画图锚点规律总绍
 Xp系统下如何架设网站站点?
 根据时段网站变换不同风格的代码
 EditPlus 代码段实用指南
 网站采集原型
 
 最新图文
  ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
关于本站 | 免责申明 | 网站地图 | 联系站长 | 友情链接 | 与我同在
冀ICP备06032589号
  Copyright© 2006-2009 100byte.Com All Rights Reserved
网站声明:本网站是公益性质网站,部分内容来源于网络,如有侵犯您权利的地方,请与精品百字节站长联系,尽快修正.
Powered By CreateLive CMS 本站法律顾问:(冀港)武镇海律师
点击这里给我发消息