易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP程序与SQL存储过程结合使用详解

存储进程就是作为可执行对象存放在数据库中的一个或多个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


相关文档:

SQL SERVER 角色说明(摘自MSDN)


服务器级别角色
为便于管理服务器上的权限,SQL Server 提供了若干“角色”,这些角色是用于分组其他主体的安全主体。“角色”类似于 Microsoft Windows 操作系统中的“组”。
服务器级角色也称为“固定服务器角色”,因为您不能创建新的服务器级角色。服务器级角色的权限作用 ......

Sql 查询技巧 某例 关于in的排序

  在有时候使用in语句查询的时候,in语句中很多项,如15项,自己同时想让查询出来结果能够按照in语句中该字段顺序查询出来。
 而Sql Server是默认按照自己的顺序排列出来的,所以一定会把结果集重新排序的。
而如果使用case when的方法虽然很繁琐,但也是可以实现的
 
 
select item_code,apply_dep ......

通过SQL语句来备份,还原数据库

 1: /*
2: 通过SQL 语句备份数据库
3: */
4: BACKUP DATABASE mydb
5: TO DISK ='C:\DBBACK\mydb.BAK'
6: --这里指定需要备份数据库的路径和文件名,注意:路径的文件夹是必须已经创建的.文件名可以使用日期来标示
7: 
8: /*
9: 通过SQL语句还原数据库
10: */
11: USE ma ......

Sql Server 中日期格式化函数

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......

用C++访问SQL Server 2000的实例

一、ADO简介
  ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,不仅简单易用,并且不失灵活性.不失为C++利用数据库快速开发的不错选择。
  理论就不用我在这儿费话了,网上有很多,但光是理论,也不是不够的,ADO访问数据的方法很灵活,容易让人混淆.网上大部分 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号