知识大全 在ASP中利用Oracle Object for OLE访问Oracle 8
Posted 数据库
篇首语:鸟欲高飞先振翅,人求上进先读书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ASP中利用Oracle Object for OLE访问Oracle 8相关的知识,希望对你有一定的参考价值。
在ASP中利用Oracle Object for OLE访问Oracle 8 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
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访问Oracle 结果发现ADO不能访问Oracle 的数字型字段 并且发现ADO访问Oracle 的速度极慢 为了解决利用ASP访问Oracle 的速度及其他技术问题 笔者尝试了利用Oracle Object for OLE访问Oracle 结果完全取得了笔者预期的结果 Oracle Object for OLE是Oracle公司为了客户端存取数据库所发展的一个重要的产品 它以Windows / /NT为基础 共所有与OLE兼容的应用程序访问Oracle数据库 它是没有用户界面的OLE Server 其所包含的Oracle Objects Server是ASP访问Oracle数据库的重要功臣之一 要通过Oracle Objects Server来访问Oracle 数据库 除了基本的Web服务器与ASP等软件外 还必须确定Web服务器已经安装了Oracle Object for OLE软件 其所需的软件包括 Neork Protocol Adapter Oracle Object for OLE X SQL*Net Client X或Oracle Net Client X SQL*Plus及Oracle ODBC Driver 在确定Web服务器已安装上述软件后 还必须利用SQL*Net Client X或Oracle Net Client X进行数据库的连接测试并设置数据库别名(Database Alias) Oracle Objects Server共提供Oraclient Orasession Oraconnection OraDatabase OraDynaset OraSQLstmt OraField Oraparameter Oraparameter Array等九个对象供开发者使用 其功能与作用分述如下 .Oraclient对象 Oraclient对象是用来定义服务器端(Client或Workstation)的范围 Oraclient会记录此服务器端的所有Orasession对象 Oraclient由系统根据需要自动建立 .Orasession对象 Orasession对象用来在程序中管理Oraconnection OraDatabase OraDynaset等对象 其建立方法如下 Set Orasession=Create( OracleInProcServer Xorasession ) .Oraconnection对象 Oraconnection对象表示对OraDatabase对象的连接 当需要建立OraDatabase对象时 系统会自动产生一个Oraconnection对象 反之 当与数据库断开连接时 Oraconnection对象自动释放 .OraDatabase对象 OraDatabase对象表示对数据库服务器的虚拟登录 其登录方法如下 Set Oradadabase=Orasession Dbopendatabase_ ( 数据库别名 用户名称/密码 ) .OraDynaset对象 OraDynaset对象会将数据库服务器符合SELECT命令的数据加以存储在客户端的缓冲区 让用户浏览或更新 最后将结果写回到服务器 其方法如下 SetOraDynaset=OraDatabase DbcreateDynaset( SQL语句 ) .OraSQLstmt对象 OraSQLstmt对象通常用来运行SQL命令 或是调用存储过程 其用法如下 Set Orasqlstmt=Oradatabase createSQl( SQL语句 ) .OraField对象 OraField对象表示在OraDynaset对象中的某个字段或数据项目 他通过Value属性设置或取得OraDynaset对象中的某个字段值 .Oraparameter对象 Oraparameter对象表示一个在SQL命令或PL/SQL程序区块中所附加的变量 .Oraparameter Array对象 Oraparameter Array对象是Oraparameter对象的数组类型 Oraparameter Array对象可以间接通过OraDatabase对象的Oraparameter数据集合来增加 存取或删除某个变量 下面举一具体例子说明如何在ASP中利用Oracle Object for OLE访问Oracle 笔者编写了一个在ASP中利用Oracle Object for OLE 查询Oracle 数据库 并进行分页显示的程序 由于Orasession对象的属性中没有控制分页的属性 应此笔者自编了分页控制的程序 以下共两个ASP文件(query asp和query asp) query asp文件先取得数据库表的内容 然后计算分页的页数 如果页数超过一页 则交由query 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)unt - 1 response.write"" response.write session(oradynaset).fields(i).name 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)unt - 1 response.write"" response.write session(oradynaset).fields(i).value response.write"" next response.write"" session(oradynaset).dbmovenext if session(oradynaset).eof then exit for next response.write"" end if if page> then response write 第一页 response write 上一页 end if if cint(page) response write 下一页 response write 最后页 end if set orasession=nothing %> query asp <% 设置页长 pagesize= if session(oradynaset) recordcount= 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)+ end if if request( page )= then page= else page=cstr(request( page )) end if response write 共 &pages& 页 目前第 &page& 页 response write for i= to session(oradynaset)unt response write response write session(oradynaset) fields(i) name response write next response write startrow=(page )*pagesize+ endrow=page*pagesize oradynaset moveto startrow for j=startrow to endrow response write for i= to session(oradynaset)unt response write response write session(oradynaset) fields(i) value response write next response write session(oradynaset) dbmovenext if session(oradynaset) eof then exit for next response write end if if page> then response write 第一页 response write 上一页 end if if cint(page) response write 下一页 response write 最后页 end if set orasession=nothing %>相关参考
知识大全 asp For Each Next 用法与For Each实例教程
aspForEachNext用法与ForEach实例教程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Oracle 8.0.4 for Windows NT的安装
Oracle8.0.4forWindowsNT的安装 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在ASP中使用Oracle数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle是世
<% dimi fori=to responsewritei next %> 下面的代码是错误的会提示缺
知识大全 Oracle 8i R2 (8.1.6) for Windows 2000 安装图解(2)
Oracle8iR2(8.1.6)forWindows2000安装图解(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让
知识大全 FAQ for the Oracle Intelligent Agent 9.0.1
FAQfortheOracleIntelligentAgent9.0.1 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
aspForNext循环语句语法与实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ForNe
知识大全 突破oracle for win2K的2G内存限制
突破oracleforwin2K的2G内存限制 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 突
知识大全 FlyTreeView for ASP.NET 3.2 破解攻略(2)
FlyTreeViewforASP.NET3.2破解攻略(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
利用for循环打印*?表?*=*=?*=*=?*=?*=*=?*=?*=?*=*=?*=?*=?*=?*=*=?*=?*=?*=?*=?*=*=?*=?*=?*=?*=?*=?*=*=?*=?*=?*