选择显示字体大小

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

一、ado概述
activex 数据对象 (ado) 是一种既易于使用又可扩充的技术,用来将数据库访问添加到您的 web 页可以使用 ado 编写简洁和可升级的脚本以连接到与 ole db 兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。ole db 是一个系统级的编程接口,它提供一套标准的 com 接口,用来展示数据库管理系统的功能。使用 ado 的对象模型,您可以轻松地(使用 vbscriptjscript 等脚本语言)访问这些接口并将数据库功能添加到您的 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]
[ ]内的内容是可选项,而()内的内容是必选项,
例: 若用户想建立一个删除表tmp中的记录的存储过程select_delete可写为:
create proc select_del as
delete tmp
例:用户想查询tmp表中某年的数据的存储过程
create proc select_query @year int as
select * from tmp where year=@year
在这里@year是存储过程的参数
例:该存储过程是从某结点n开始找到最上层的父亲结点,这种经常用到的过程可以由存储过程来担当,在网页中重复使用达到共享。
空:表示该结点为顶层结点
fjdid(父结点编号)
结点n 非空:表示该结点的父亲结点号
dwmc(单位名称)
create proc search_dwmc @dwidold int,@dwmcresult varchar(100) output
as
declare @stop int
declare @result varchar(80)
declare @dwmc varchar(80)
declare @dwid int
set nocount on
set @stop=1
set @dwmc=""
select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold
set @result=rtrim(@dwmc)
if @dwid=0
set @stop=0
while (@stop=1) and (@dwid<>0)
begin
set @dwidold=@dwid
select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold
if @@rowcount=0
set @dwmc=""
else
set @result=@dwmc+@result
if (@dwid=0) or (@@rowcount=0)
set @stop=0
else
continue
end
set @dwmcresult=rtrim(@result)
充分合理地利用存储过程,可以提高服务器吞吐能力,笔者利用存储过程来从近20个表中获取数据组合成一个通用的表,产生近2万条记录,而所需时间约7秒钟,如果这种操作借助于较合理的动态网页可以将服务器开发提高到一个高度,充分利用存储过程,可以减轻网页设计带来的繁重处理,而使所编写的代码得到共享和合理的利用,并将代码藏于服务器数据库内部,使得一些技术得到的保密,这也是存储过程的一大特色,希望读者能从中得到启益。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons