首页
知识
文库
登录
|
注册
首页
最近更新
所有主题
我的主题
我的收藏
首页
·
知识
·
编程语言
用OracleObjectforOLE访问Oracle
佚名
本站原创
ASP
编辑:
dezai
图片来源:网络
ASP内置的ADO组件是微软公司开发的互联网络数据库存取解决方案,也是ASP存取数据库的重要功臣,ADO通过ODBC访问数据库,从理论上讲ADO能访问各种ODBC所支持的数
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)
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)
response.write "
下一页
"
response.write "
最后页
"
end if
set orasession=nothing
%>
上述程序在Windows Nt4.0+Iss4.0上通过运行。
由于ORACLE数据库应用很广泛,市场销售量一直占前几位,许多企业的MIS、IT系统都以ORACLE数据库作为数据存储基础,将ORACLE数据库的信息加到网页中,可以大大地丰富网页发布的信息,使我们的网页既能发布实时、复杂的数据库信息,又能接收客户机对数据库的修改信息。因此使用此方法能提高在Web上访问ORACLE的效率。 本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
浅谈系统性能提升的经验和方法
SpringBoot 实现异步记录复杂日志
Linux 实时查看日志文件的 4 种方法
也许感兴趣的
.
一文读懂大模型RAG:检索、增强与生成的技术详解
.
什么是大模型(LLMs)?一文读懂什么是大模型
.
逻辑数据编织 VS 传统数据研发
.
指标体系建设的三大支柱:指标梳理、管理规范与平台建设
.
一文彻底搞懂大模型 - RAG(检索、增强、生成)
.
大模型领域常用名词解释
.
Transformer:内部工作原理及拆解
我们推荐的
.
Spring Boot 构建多租户SaaS平台核心技术指南
.
关于Java异常设计和处理
.
Nginx学习看这一篇就够了
.
社会化海量数据采集爬虫框架搭建
.
ASP.NET多文件批量打包下载
.
Razor基础语法简介
.
ASP.NET中在不同的子域中共享Session
.
C#实现工作日的计算(排班系统常用)
主题最新
.
一文搞懂微服务架构演进
.
一文详解微服务架构
.
迄今为止最完整的DDD实践
.
全链路压测自动化实践
.
多维度规划业务架构
.
企业架构之业务架构
.
需求管理完整指南
.
软件安全设计原则
.
应用部署初探:微服务的3大部署模式
看看其它的
.
linux修改系统时间详解
.
linux与win分区格式
.
vmwareforlinux使用经典问答
.
VMware虚拟机上安装Linux系统
.
Linux操作系统安装VMware
.
解决WinXP重装后原文件夹拒绝访问
.
修复受损DVD光盘
.
笔记本移动CPU和显卡型号
收藏至微信