当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用存储过程实现ASP对数据库访问

ASP
基于ASP的收发文管理系统的设计与实现
用ASP制作张扬个性的调查系统
使用XMLHTTP制作域名查询系统
Delphi编写组件封装asp代码的基本步骤
采用XMLHTTP编写一个天气预报的程序
菜鸟详听ASP中也能解压缩rar文件
用Asp+XmlHttp实现RssReader功能
纯ASP代码之公历转农历实现(含属相)
纯ASP代码之公历转农历实现(含属相)--例子代码
多个域名后缀同时查询的域名查询系统
实现有管理功能的ASP留言板
Jmail发信的实例,模块化随时调用
纯ASP(VBscript)写的全球IP地址搜索程序
数字和字母组合并生成图片的验证码祥解
金额大小写转换的asp完全无错版本
用ASP学做一个在线调查
利用客户端js实现汉字简体繁体转换
ASP操作XML文件的完整实例
浅谈TeeChart组件在ASP中的应用
在VB中利用Word宏命令开发ASP组件

用存储过程实现ASP对数据库访问


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

  一、ADO概述
ActiveX 数据对象 (ADO) 是一种既易于使用又可扩充的技术,用来将数据库访问添加到您的 Web 页可以使用 ADO 编写简洁和可升级的脚本以连接到与 OLE DB 兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。OLE DB 是一个系统级的编程接口,它提供一套标准的 COM 接口,用来展示数据库管理系统的功能。使用 ADO 的对象模型,您可以轻松地(使用 VBScript 或 JScript 等脚本语言)访问这些接口并将数据库功能添加到您的 Web 应用程序中。另外,您还可以使用 ADO 访问与开放式数据库互连 (ODBC) 兼容的数据库。
如果您是一位对数据库互连知识有一定了解的脚本编写者,您将会发现 ADO 的命令语法很简单,而且很容易使用。如果您是一位经验丰富的开发人员,您将会非常欣赏 ADO 提供的这种可升级的对各种数据源的高性能访问。
二、访问数据库的一般方法
一般的网页访问中访问数据库是按照下列步骤进行的,首先建立一个ADODB.Connection 接口的对象,接着在这一个对象上绑定相应的数据源(可以用有名数据源和无名数据源),根据需要建立或者不建立记录集,然后在该数据源上链接用执行或打开的方法来对相应的表进行操作。
Asp访问数据库的一般方法:
<
Set oConn=Server.CreateObject(“ADODB.Connection”)
Set oRS=Server.CreateObject(“ADODB.RecordSet”)
set strConn="Provider=SQLOLEDB;User ID=sa; Initial Catalog=Pubs;Data Source=" &request.ServerVariables("SERVER_NAME")
oConn.open strConn
set ORS=oConn.execute(“select * from test”)
>
以上介绍了无名链接的OLEDB的使用方法,如果是有名链接,设为数据源test,用户名和口令均为空,则只需要改写一下上述语句oConn.open “test”,””,””
上面简要介绍了一下对于网页中涉及到数据库访问的一般方法,这些已经是很成熟的,也是很有用的,如果在实际中对于某些数据的存取过于复杂,需要近10条SQL语句才能写完,那么这种方法就有点欠缺,另外有些时候需要使用相同的处理过程,而在不同的网页中使用,而这用存储过程则是最有利的,还有一个最大特点是存储过程对于技术的保密性相对高些,它存储于远端服务器的数据库内。
三、存储过程在ASP中的使用
在ADO中提供了对存储过程的访问,它需要用到command对象,在这个对象上用户可以直接执行SQL服务器的存储过程,而命令中所需要的参数可以借助于其属性Pamaters来进行处理。
注意 一个 Command 对象要想有效,必须和一个 Connection 对象相关联,方法是Command 对象的 ActiveConnection 属性就被设置到这个 Connection 对象。如果一个 Connection 对象不能被标识,在您将它与一个连接关联之前,Command 对象是无效的。
< Dim oConn 
Dim strConn 
Dim oCmd 
Dim oRs,ors1 
dim aa
dim sql
Set oConn = Server.CreateObject("ADODB.Connection")
set oCmd = Server.CreateObject("ADODB.Command")
set ors1=Server.CreateObject("ADODB.RecordSet")
' 打开链接,使用用户标识SA,口令为空,连接为本地服务器上的数据库
strConn="Provider=SQLOLEDB;User ID=sa;Initial Catalog=pubs;Data Source="& Request.ServerVariables("SERVER_NAME")
'如果连接一个远端的数据库,该数据库地址为:10.82.88.105,用户为tmp,口令为123,
‘则可用下面的方法
‘ strConn="Provider=SQLOLEDB;User ID=tmp;pwd=123;Initial Catalog=tjbb;Data Source="& "10.82.88.110"
oConn.Open strConn
‘将建立的链接添加到命令的活动链接属性中
Set oCmd.ActiveConnection = oConn
' 设置调用存储过程byroyalty和参数,参数由?引入
oCmd.CommandText = "{call byroyalty(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
' 提供输入的参数
oCmd("@Percentage") = 75
‘在asp中上述输入参数的使用也可不用参数属性来实现直接用VB中的&来形成命令文本中对应的数据即可
‘参数的使用在输出时是特别有用的
Set oRs = oCmd.Execute 
ors1.activeconnection=oconn 
‘该命令对象中也可应用一般的SQL语句使用Source和open属性,其中source指出数据源
ors1.source ="select * from [tmptable] where 年份=2000 and 月份=1"
ors1.cursortype=adopenstatic 
ors1.open
>
四、在SQL中的存储过程简介
利用SQL的语言可以编写对于数据库访问的存储过程,其语法如下:
CREATE PROC[EDURE] procedure_name [;number]
[
{@parameter data_type} [VARYING] [= default] [OUTPUT]
]
[,...n]
[WITH 
{
RECOMPILE 
| ENCRYPTION 
| RECOMPILE, ENCRYPTION
}
]
[FOR REPLICATION]
AS
sql_statement [...n]