学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> ASP >> 在ASP中使用Oracle数据库


在ASP中使用Oracle数据库



  Oracle是世界上用得最多的数据库之一,活动服务器网页(ASP)是一种被广泛用于创建动态网页的功能强大的服务器端脚本语言。许多ASP开发人员一直在考虑,能否在开发互联网应用、电子商务网站、互联网管理系统时结合使用ASP和Oracle数据库?这个问题的答案是肯定的,我们还可以使用VB访问Oracle数据库。在本篇文章中,我们将主要讨论如何使用ASP来处理Oracle数据库中数据的方法。

  在开始讨论这个问题前,我们需要了解几个背景知识,Oracle Objects for OLE就是其中之一。Oracle Objects for OLE是Oracle开发的一个中间件,它允许使用微软的OLE标准的客户端应用程序访问Oracle的数据库。也许会有读者说,我们也可以使用ODBC访问Oracle的数据库。当然,可以使用ODBC访问Oracle数据库,但我认为,Oracle Objects for OLE比ODBC更安全,而且完全支持PL/SQL。PL/SQL是Oracle对SQL命令集的扩展,开发人员能够利用它对非结构化的SQL命令块进行流控制和逻辑设计。如果安装的是Oracle8i数据库,我相信你已经在使用Oracle Objects for OLE。如果还没有使用Oracle Objects for OLE,可以从Oracle的网站上下载它。


  另外,我们还需要了解Oracle针对Visual Basic开发的二个对象和一个接口:OraSession、OraDynaset对象和OraDatabase接口。OraSession对象管理应用程序的OraDatabase、OraConnection和OraDynaset,它是由ASP的CreateObject而不是Oracle Objects for OLE创建的一个对象。OraDatabase接口向Oracle数据库表示表现用户对话,并为SQL、PL/SQL的执行提供方法。它们每个都有一些属性和方法。例如,OraDynaset对象有BOF、EOF、Bookmark、Connection等属性以及AddNew、Update、Delete、Edit、Refresh、Clone等10个方法。

  下面我们就开始切入主题,讨论如何使用ASP处理Oracle数据库中的数据。

  准备工作

  我们需要什么样的环境和工具?

  1)我使用了Oracle8i、IIS5.0、Windows2000专业版作为应用程序的开发和运行环境。

  2)在Oracle数据库中建立一个名字为MYTABLE1或类似的表。

ID (type: number) User Name(type: varchar2) Phone(type: varchar2) Email(type: varchar2)
100 Colin Tong 999-999-8888 colinjava@hotmail.com
111 John White 888-888-8888 johnw@yahoo.com
101 Don Wod 416-333-3344 donwod@test.com

  数据的访问和存取

  1) Instantiate OO4O Object, OraSession and interface OraDatabase for connecting to ORACLE.

  1)初始化Oracle Objects for OLE、OraSession对象和OraDatabase接口,为连接ORACLE数据库作准备。

  首先,使用CreateObject创建OraSession对象,然后通过打开一个与Oracle的连接创建OraDatabase对象,如下所示:

<%
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("", _
"username/password", Cint(0))
%>

   “username”和“password”是你所使用的关系数据库的用户名和口令。

  2)创建OraDynaset对象执行SQL命令。我们可以使用CreateDynaset或DbCreateDynaset创建记录集。

<%
'execute SQL
Set OraDynaset = OraDatabase.DbCreateDynaset( _
"select * from mytable1", cint(0))
%>

  3)存取数据并删除创建的对象。

<%
Do While(OraDynaset.EOF = FALSE)
Response.write(OraDynaset.Fields("ID"))
Response.write(OraDynaset.Fields("UserName"))
... others ...
... ...
OraDynaset.MoveNext
Loop
'remove OraSession
Set OraSession = Nothing
%>

  编辑数据记录

  我们将使用OraDynaset的方法实现对数据记录的编辑。

  1)使用SQL语句创建OraDynaset对象。

<%
'创建ID= fID的记录的OraDynaset对象。
Set OraDynaset = OraDatabase.CreateDynaset(_
"select * from MYTABLE1 where ID= "& fID, cint(0))
%>

  fID是想插入更更新的记录的ID值。

  2)执行OraDynaset更新或添加数据记录。

<%
'使用Edit方法更新ID=fID记录的域。
'或使用AddNew插入一个新记录
OraDynaset.Edit
OraDynaset.Fields("Phone").Value = fPhone
OraDynaset.Update

' 删除创建的对话
Set OraSession = Nothing
%>

  删除数据记录

  如果已经真正地理解了我们在上面讨论的一些方法(Edit、Update和AddNew),也许有的读者已经知道该如何在Oracle数据库中删除记录了。

<%
'删除所有符合上面条件的记录
OraDynaset.Delete
%>

  在Oracle8i中搜索和更新数据记录的代码

  1)搜索

<%
'RetriveRecProc.asp -使用ASP的Oracle Objects for OLE更新数据记录

%>
<%
'定义作为OLE对象的变量
Dim OraSession
Dim OraDatabase
Dim OraDynaset

'创建OraSession对象
Set OraSession = CreateObject("OracleInProcServer.XOraSession")

'通过打开Oracle数据库的一个连接创建OraDatabase对象
'一定要使用自己的用户名和口令访问Oracle数据库
Set OraDatabase = OraSession.OpenDatabase("", "user/password", _
Cint(0))

'创建OraDynaset对象执行SQL语句
Set OraDynaset = OraDatabase.DbCreateDynaset(_
"select * from mytable1", cint(0))
%>
<html><body>
<H3>Retrieve All Records in MYTABLE1 Table ( in Oracle)
Using oo4o</H3>
<table border=1 ID="Table1">
<%
Do While(OraDynaset.EOF = FALSE)
Response.Write("<tr><td>")
Response.write(OraDynaset.Fields("ID"))
Response.Write("</td><td>")
Response.write(OraDynaset.Fields("UserName"))
Response.Write("</td><td>")
Response.write(OraDynaset.Fields("Phone"))
Response.Write("</td><td>")
Response.write(OraDynaset.Fields("Email"))
Response.Write("</td></tr>")
OraDynaset.MoveNext
Loop

'删除OraSession
Set OraSession = Nothing
%>
</table>
<a href="javascript:window.history.go(-1)">
Back previous Page</a> |
<a href="index.html"> Back home Page</a>
</body></html>

  2)更新

<%
'UpdateRecProc.asp -使用ASP的Oracle Objects for OLE更新数据记录
%>
<%
'定义作为OLE对象的变量。
Dim OraSession
Dim OraDatabase
Dim OraDynaset

'从提交的表格中获取字段值
fID = request.form("ID")
fUserName = request.form("UserName")
fPhone = request.form("Phone")
fEmail = request.form("Email")

'创建OraSession对象
Set OraSession = CreateObject("OracleInProcServer.XOraSession")

'通过打开Oracle数据库的一个连接创建OraDatabase对象
Set OraDatabase = OraSession.OpenDatabase("", "user/password", _
Cint(0))

'创建ID= fID的记录的OraDynaset对象
Set OraDynaset = OraDatabase.CreateDynaset(_
"select * from MYTABLE1 where ID= "& fID, cint(0))

'使用Edit方法更新ID=fID记录的字段
Do While(OraDynaset.EOF = FALSE)
OraDynaset.Edit
OraDynaset.Fields("UserName").Value = fUserName
OraDynaset.Fields("Phone").Value = fPhone
OraDynaset.Fields("Email").Value = fEmail
OraDynaset.Update
OraDynaset.MoveNext
Loop
%>
<html><body>
<H3>Update A Record in MYTABLE1 Table (Oracle) Using oo4o</H3>
The record (ID=<%=fID%>) has been updated successfully!<br>
You can view the result <a href="RetrieveAllRec.asp"> here</a>
<p>
<a href="javascript:window.history.go(-1)"> Back previous Page</a>
&bnsp;&bnsp;
<a href="javascript:window.history.go(-2)"> Back home Page</a>
<%
'删除OraSession对象
Set OraSession = Nothing
%>
</body></html>

  至此,我们已经讨论了如何在ASP代码中使用Oracle Objects for OLE来处理Oracle数据库中的数据。

  使用存储过程

  我们已经讨论了如何在ASP中访问Oracle数据库,所有的SQL语句都可以嵌入在ASP网页中。如果在ASP中使用存储过程,将更能够更有效地处理数据。我建议读者除在ASP中嵌入SQL语句外,还应当使用PL/SQL存储过程。在Oracle数据库中创建存储过程已经超出了本文章的范围,在这里就不再进行介绍了。

  ASP和Oracle数据库是二种比较流行的技术,都有相当广泛的用户群,如果能够有机地将二者结合起来,将能够给工作带来许多方便,希望这篇文章能够起到抛砖引玉的作用,使读者能够更好地探索将这二种技术结合使用的途径。

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"在ASP中使用Oracle数据库"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 在ASP中使用Oracle数据库 相关内容
Google搜索中 在ASP中使用Oracle数据库 相关内容
雅虎中 在ASP中使用Oracle数据库 相关内容
Sogou搜索中 在ASP中使用Oracle数据库 相关内容

相关软件 最新回复帖子:

·Windows Vista 中卸载软件的不同方式
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效


  相关软件 在ASP中使用Oracle数据库相关文章
对ASP脚本源代码进行加密 用ASP.Net发送MailList(二)
用ASP.Net发送MailList(一) 怎样动态include文件
介绍一种效率极高的分类算法 ASP中检查没有数据提交的页面Ⅱ
ASP中检查没有数据提交的页面Ⅰ 创建服务器端的ASP搜索组件(二)
创建服务器端的ASP搜索组件(一) 如何增强ASP程序性能(4)
如何增强ASP程序性能(3) 如何增强ASP程序性能(2)
如何增强ASP程序性能(1) 高级表单验证
使用ASP加密算法加密你的数据(二) 使用ASP加密算法加密你的数据(一)
用ASP实现网页保密的两种方法 通过asp入侵web server,窃取文件毁坏
用ASP判断Email地址是否有效 ASP常数