ASP下存储过程编写入门全接触第1/5页

ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事。对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了。

  现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助。

  存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。

  定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储过程以及在ASP中调用存储过程,就可以避免将SQL语句同ASP代码混杂在一起。这样做的好处至少有三个:

  第一、大大提高效率。存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数。 

  第二、提高安全性。假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。 

  第三、有利于SQL语句的重用。

  在ASP中,一般通过command对象调用存储过程,根据不同情况,本文也介绍其它调用方法。为了方便说明,根据存储过程的输入输出,作以下简单分类: 

1. 只返回单一记录集的存储过程 

假设有以下存储过程(本文的目的不在于讲述T-SQL语法,所以存储过程只给出代码,不作说明): 

/*SP1*/ 

复制代码 代码如下:

CREATE PROCEDURE dbo.getUserList  

as  

     set nocount on  

begin  

      select * from dbo.[userinfo]  

end  

go

  以上存储过程取得userinfo表中的所有记录,返回一个记录集。通过command对象调用该存储过程的ASP代码如下: 

'**通过Command对象调用存储过程** 

DIM MyComm,MyRst 

Set MyComm = Server.CreateObject("ADODB.Command") 

MyComm.ActiveConnection = MyConStr 'MyConStr是数据库连接字串 

MyComm.CommandText = "getUserList" '指定存储过程名 

MyComm.CommandType = 4 '表明这是一个存储过程 

MyComm.Prepared = true '要求将SQL命令先行编译 

Set MyRst = MyComm.Execute 

Set MyComm = Nothing 

存储过程取得的记录集赋给MyRst,接下来,可以对MyRst进行操作。

在以上代码中,CommandType属性表明请求的类型,取值及说明如下: 

-1 表明CommandText参数的类型无法确定 

1 表明CommandText是一般的命令类型 

2 表明CommandText参数是一个存在的表名称 

4 表明CommandText参数是一个存储过程的名称 

还可以通过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相同

当前1/5页 12345下一页阅读全文

时间: 2024-09-18 10:38:52

ASP下存储过程编写入门全接触第1/5页的相关文章

ASP下存储过程编写入门全接触第1/5页_存储过程

  ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了.  现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助.  存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.  定义总是很抽象.

PHP 数组学习排序全接触第1/2页_php技巧

array_values($arr) array 返回数组所有元素 复制代码 代码如下: <?php $arr = array("a", "b", "c"); $arr = array_flip($arr); //反转数组的下标和值现在的$arr = array(0, 1, 2); $arr = array_values($arr); //返回数组$arr中的所有元素 print_r($arr); //结果: array(0, 1, 2);

ASP开发中存储过程应用全接触_存储过程

ASP开发中存储过程应用全接触        ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料 ,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为 它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了.   现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助.   存储过程就是作为可执行对象存放在数

技巧文章:ASP开发中存储过程应用全接触

存储过程|技巧 ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了. 现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助. 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 定义总是很

ASP开发中存储过程应用全接触

存储过程     ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了. 现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助. 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 定义总是

SQL注入天书—ASP注入漏洞全接触

SQL注入天书-ASP注入漏洞全接触选择自 digituser 的 Blog 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入. SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的

新手入门:Java Swing的基础知识全接触

1.前言: 当我们学习过了java中的基本语法,并且熟悉java的面向对象基础以后,我们就可以开始简单的Swing程序的设计,用过Vb的朋友可能会被它的简单的设计用户界面方法所吸引,只需要拖几个控件到窗体上,为每个空件编写event就可以简单的实现界面设计.但是强大的java也不比vb逊色.同样可以设计出精美的界面. 2.Swing概述: 当java1.0刚刚出现时还没有swing,当时的GUI基本编程库,sun取名叫AWT(Abstract Window Tookit),基本AWT库处理用户界

你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(下)

你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合

SWT全接触

Java 世界的人似乎一直都对 Java 的桌面应用程序十分不满,从 AWT 到 SWING,从默认的 Theme到 第三方的产品,不是太难看(AWT)就是在某些平台有 BUG(SWING,Quaqua--一个Windows平台下的仿Mac 的主题包),再不就是对中文支持不好(某些第三方 LookAndFeel).于是,如果想要获得和本机平台一 致的用户界面和比较稳定的性能,SWT就成了一个不可忽视的选择. 当然,虽然这个专题名叫"全接触",但毕竟不可能面面俱到,在一篇文章中兼收并蓄S