文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发Web服务器 → 用Object for OLE访问Oracle

用Object for OLE访问Oracle

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




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的效率。



相关阅读 Win10预览版怎么升级 Win10预览版升级方法厂商不再预装Win7或8.1系统,驱动人生帮您快速升级Mac移动硬盘安装win8 Mac将win装在移动硬盘使用教程windows10xboxone串流简单教程Windows Hello怎么用 Windows Hello使用设置教程win10怎么关闭自动更新 win10如何关闭自动更新Mac系统如何远程桌面到Windows系统windows update更新有用吗 windows update下载的文件在哪

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 CSS网页布局困扰新手的 网站重定向技巧让你的网站流量不流失让Apache性能显著提升的25个优化技巧Windows主机wordpress伪静态设置如何在IIS中授予特定内容Web服务器权限

人气排行 文件夹无法访问、拒绝访问的解决方法IIS6.0服务器搭建网站无法访问解决方法iis设置让iis支持flv格式_2003 iis添加flvCSS网页布局困扰新手的八个问题Apache HTTP Server配置教程Serv-U错误代码大全教你如何解决Web服务器能Ping通但不能访问让Apache性能显著提升的25个优化技巧