您的位置:首页精文荟萃软件资讯 → 在ASP中利用Oracle Object for OLE访问Oracle 8

在ASP中利用Oracle Object for OLE访问Oracle 8

时间:2004/10/7 19:09:00来源:本站整理作者:蓝点我要评论(0)




ASP(Active Server Pages)是微软公司为开发互联网络应用程序所提出的工具之一,它是一种类似HTML(Hypertext
Markup Language超文本标记语言)、Script与CGI(Common Gateway Interface通用网关接口)的结合体,但是其运行效率却
比CGI更高、程序编制也比HTML更方便且更有灵活性,程序安全性及保密性远比Script好。因此ASP是目前网页开发技术中
最容易学习、灵活性最大的开发工具。
ASP内置的ADO组件是微软公司开发的互联网络数据库存取解决方案,也是ASP存取数据库的重要功臣,ADO通过ODBC访问数
据库,从理论上讲ADO能访问各种ODBC所支持的数据库,如Microsoft SQL Server,Access,Foxpro,Oracle,Dbase等,
然而在实践中我们发现ADO可以完全支持Microsoft SQL Server和Acess,然而对于Oracle就有些困难了,笔者在实践中利
用ADO访问Oracle8,结果发现ADO不能访问Oracle8的数字型字段,并且发现ADO访问Oracle8的速度极慢。
为了解决利用ASP访问Oracle8的速度及其他技术问题,笔者尝试了利用Oracle Object for OLE访问Oracle8,结果完全取
得了笔者预期的结果。
Oracle Object for OLE是Oracle公司为了客户端存取数据库所发展的一个重要的产品,它以Windows95/98/NT为基础,共
所有与OLE兼容的应用程序访问Oracle数据库。它是没有用户界面的OLE Server,其所包含的Oracle Objects Server是ASP
访问Oracle数据库的重要功臣之一。
要通过Oracle Objects Server来访问Oracle8数据库,除了基本的Web服务器与ASP等软件外,还必须确定Web服务器已经安
装了Oracle Object for OLE软件,其所需的软件包括:Network Protocol Adapter、Oracle Object for OLE2.X、
SQL*Net Client2.X或Oracle Net8 Client8.X、SQL*Plus及Oracle8 ODBC Driver。在确定Web服务器已安装上述软件后,
还必须利用SQL*Net Client2.X或Oracle Net8 Client8.X进行数据库的连接测试并设置数据库别名(Database Alias)。
Oracle Objects Server共提供Oraclient、Orasession、Oraconnection、OraDatabase、OraDynaset、OraSQLstmt、
OraField、Oraparameter、Oraparameter Array等九个对象供开发者使用。其功能与作用分述如下:
1.Oraclient对象
Oraclient对象是用来定义服务器端(Client或Workstation)的范围,Oraclient会记录此服务器端的所有Orasession对象。
Oraclient由系统根据需要自动建立。
2.Orasession对象
Orasession对象用来在程序中管理Oraconnection、OraDatabase、OraDynaset等对象,其建立方法如下:
Set Orasession=Create(“OracleInProcServer.Xorasession”)
3.Oraconnection对象
Oraconnection对象表示对OraDatabase对象的连接,当需要建立OraDatabase对象时,系统会自动产生一个Oraconnection
对象。反之,当与数据库断开连接时,Oraconnection对象自动释放。
4.OraDatabase对象
OraDatabase对象表示对数据库服务器的虚拟登录,其登录方法如下:
Set Oradadabase=Orasession.Dbopendatabase_
(“数据库别名”, “用户名称/密码”,0)
5.OraDynaset对象
OraDynaset对象会将数据库服务器符合SELECT命令的数据加以存储在客户端的缓冲区,让用户浏览或更新,最后将结果写
回到服务器,其方法如下:
SetOraDynaset=OraDatabase.DbcreateDynaset(“SQL语句”,0)
6.OraSQLstmt对象
OraSQLstmt对象通常用来运行SQL命令、或是调用存储过程,其用法如下:
Set Orasqlstmt=Oradatabase.createSQl(“SQL语句”,0)
7.OraField对象
OraField对象表示在OraDynaset对象中的某个字段或数据项目,他通过Value属性设置或取得OraDynaset对象中的某个字段
值。
8.Oraparameter对象
Oraparameter对象表示一个在SQL命令或PL/SQL程序区块中所附加的变量。
9.Oraparameter Array对象
Oraparameter Array对象是Oraparameter对象的数组类型,Oraparameter Array对象可以间接通过OraDatabase对象的
Oraparameter数据集合来增加、存取或删除某个变量。

下面举一具体例子说明如何在ASP中利用Oracle Object for OLE访问Oracle 8。
笔者编写了一个在ASP中利用Oracle Object for OLE2.3查询Oracle 8.0.5数据库,并进行分页显示的程序。由于
Orasession对象的属性中没有控制分页的属性,应此笔者自编了分页控制的程序。
以下共两个ASP文件(query.asp和query1.asp),query.asp文件先取得数据库表的内容,然后计算分页的页数,如果页数超
过一页,则交由query1.asp处理,其程序代码如下
‘query.asp
<%
‘连接数据库
set orasession=createobject("oracleinprocserver.xorasession")
set oradatabase=orasession.dbopendatabase("orant","scotter/tiger",0)
‘设置查询条件
sql="select * from cq_hjwj "
set session(oradynaset)=oradatabase.dbcreatedynaset(sql,0)
‘设置页长
pagesize=15
if session(oradynaset).recordcount=0 then
response.write "无符合条件的数据"
else
response.write"

查询结果

"
‘计算页数
pages=int(session(oradynaset).recordcount/pagesize)
if pages*pagesize=session(oradynaset).recordcount then
pages=int(session(oradynaset).recordcount/pagesize)
else
pages=int(session(oradynaset).recordcount/pagesize)+1
end if
if request("page")="" then
page=1
else
page=cstr(request("page"))
end if
response.write"共"&pages&"页,目前第"&page&"页"
response.write""
for i=0 to session(oradynaset).fields.count - 1
response.write""
next
response.write ""
startrow=(page-1)*pagesize+1
endrow=page*pagesize
oradynaset.moveto startrow
for j=startrow to endrow
response.write""
for i=0 to session(oradynaset).fields.count - 1
response.write""
next
response.write""
session(oradynaset).dbmovenext
if session(oradynaset).eof then exit for
next
response.write"

"
response.write session(oradynaset).fields(i).name
response.write"

"
response.write session(oradynaset).fields(i).value
response.write"

"
end if
if page>1 then
response.write "第一页 "
response.write "上一页 "
end if
if cint(page)<pages then
response.write "下一页 "
response.write "最后页 "
end if
set orasession=nothing
%>



‘query1.asp
<%
‘设置页长
pagesize=15
if session(oradynaset).recordcount=0 then
response.write "无符合条件的数据"
else
response.write"

查询结果

"
‘计算页数
pages=int(session(oradynaset).recordcount/pagesize)
if pages*pagesize=session(oradynaset).recordcount then
pages=int(session(oradynaset).recordcount/pagesize)
else
pages=int(session(oradynaset).recordcount/pagesize)+1
end if
if request("page")="" then
page=1
else
page=cstr(request("page"))
end if
response.write"共"&pages&"页,目前第"&page&"页"

response.write""
for i=0 to session(oradynaset).fields.count - 1
response.write""
next
response.write ""
startrow=(page-1)*pagesize+1
endrow=page*pagesize
oradynaset.moveto startrow
for j=startrow to endrow
response.write""
for i=0 to session(oradynaset).fields.count - 1
response.write""
next
response.write""
session(oradynaset).dbmovenext
if session(oradynaset).eof then exit for
next
response.write"

"
response.write session(oradynaset).fields(i).name
response.write"

"
response.write session(oradynaset).fields(i).value
response.write"

"
end if
if page>1 then
response.write "第一页 "
response.write "上一页 "
end if
if cint(page)<pages then
response.write "下一页 "
response.write "最后页 "
end if
set orasession=nothing
%>


上述程序在Windows Nt4.0+Iss4.0上通过运行。
由于ORACLE数据库应用很广泛,市场销售量一直占前几位,许多企业的MIS、IT系统都以ORACLE数据库作为数据存储基础,
将ORACLE数据库的信息加到网页中,可以大大地丰富网页发布的信息,使我们的网页既能发布实时、复杂的数据库信息,
又能接收客户机对数据库的修改信息。因此使用此方法能提高在Web上访问ORACLE的效率。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本