数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

在ASP中使用Oracle数据库


发布日期:2021年01月30日
 
在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/SQLPL/SQL是Oracle对SQL命令集的扩展开发人员能够利用它对非结构化的SQL命令块进行流控制和逻辑设计如果安装的是Oraclei数据库我相信你已经在使用Oracle Objects for OLE如果还没有使用Oracle Objects for OLE可以从Oracle的网站上下载它

另外我们还需要了解Oracle针对Visual Basic开发的二个对象和一个接口OraSessionOraDynaset对象和OraDatabase接口OraSession对象管理应用程序的OraDatabaseOraConnection和OraDynaset它是由ASP的CreateObject而不是Oracle Objects for OLE创建的一个对象OraDatabase接口向Oracle数据库表示表现用户对话并为SQLPL/SQL的执行提供方法它们每个都有一些属性和方法例如OraDynaset对象有BOFEOFBookmarkConnection等属性以及AddNewUpdateDeleteEditRefreshClone等个方法

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

准备工作

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

)我使用了OracleiIISWindows专业版作为应用程序的开发和运行环境

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

ID (type: number) User Name(type: varchar) Phone(type: varchar) Email(type: varchar)

Colin Tong c

John White

Don Wod

数据的访问和存取

) Instantiate OOO Object OraSession and interface OraDatabase for connecting to ORACLE

)初始化Oracle Objects for OLEOraSession对象和OraDatabase接口为连接ORACLE数据库作准备

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

<%

Set OraSession = CreateObject(OracleInProcServerXOraSession)

Set OraDatabase = OraSessionOpenDatabase( _

username/password Cint())

%>

usernamepassword是你所使用的关系数据库的用户名和口令

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

<%

execute SQL

Set OraDynaset = OraDatabaseDbCreateDynaset( _

select * from mytable cint())

%>

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

<%

Do While(OraDynasetEOF = FALSE)

Responsewrite(OraDynasetFields(ID))

Responsewrite(OraDynasetFields(UserName))

others

OraDynasetMoveNext

Loop

remove OraSession

Set OraSession = Nothing

%>

编辑数据记录

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

)使用SQL语句创建OraDynaset对象

<%

创建ID= fID的记录的OraDynaset对象

Set OraDynaset = OraDatabaseCreateDynaset(_

select * from MYTABLE where ID= & fID cint())

%>

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

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

<%

使用Edit方法更新ID=fID记录的域

或使用AddNew插入一个新记录

OraDynasetEdit

OraDynasetFields(Phone)Value = fPhone

OraDynasetUpdate

删除创建的对话

Set OraSession = Nothing

%>

删除数据记录

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

<%

删除所有符合上面条件的记录

OraDynasetDelete

%>

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

)搜索

<%

RetriveRecProcasp 使用ASP的Oracle Objects for OLE更新数据记录

%>

<%

定义作为OLE对象的变量

Dim OraSession

Dim OraDatabase

Dim OraDynaset

创建OraSession对象

Set OraSession = CreateObject(OracleInProcServerXOraSession)

通过打开Oracle数据库的一个连接创建OraDatabase对象

一定要使用自己的用户名和口令访问Oracle数据库

Set OraDatabase = OraSessionOpenDatabase( user/password _

Cint())

创建OraDynaset对象执行SQL语句

Set OraDynaset = OraDatabaseDbCreateDynaset(_

select * from mytable cint())

%>

<html><body>

<H>Retrieve All Records in MYTABLE Table ( in Oracle)

Using ooo</H

<table border= ID=Table

<%

Do While(OraDynasetEOF = FALSE)

ResponseWrite(<tr><td>)

Responsewrite(OraDynasetFields(ID))

ResponseWrite(</td><td>)

Responsewrite(OraDynasetFields(UserName))

ResponseWrite(</td><td>)

Responsewrite(OraDynasetFields(Phone))

ResponseWrite(</td><td>)

Responsewrite(OraDynasetFields(Email))

ResponseWrite(</td></tr>)

OraDynasetMoveNext

Loop

删除OraSession

Set OraSession = Nothing

%>

</table>

<a javascript:windowhistorygo()

Back previous Page</a> |

<a > Back home Page</a>

</body></html>

)更新

<%

UpdateRecProcasp 使用ASP的Oracle Objects for OLE更新数据记录

%>

<%

定义作为OLE对象的变量

Dim OraSession

Dim OraDatabase

Dim OraDynaset

从提交的表格中获取字段值

fID = requestform(ID)

fUserName = requestform(UserName)

fPhone = requestform(Phone)

fEmail = requestform(Email)

创建OraSession对象

Set OraSession = CreateObject(OracleInProcServerXOraSession)

通过打开Oracle数据库的一个连接创建OraDatabase对象

Set OraDatabase = OraSessionOpenDatabase( user/password _

Cint())

创建ID= fID的记录的OraDynaset对象

Set OraDynaset = OraDatabaseCreateDynaset(_

select * from MYTABLE where ID= & fID cint())

使用Edit方法更新ID=fID记录的字段

Do While(OraDynasetEOF = FALSE)

OraDynasetEdit

OraDynasetFields(UserName)Value = fUserName

OraDynasetFields(Phone)Value = fPhone

OraDynasetFields(Email)Value = fEmail

OraDynasetUpdate

OraDynasetMoveNext

Loop

%>

<html><body>

<H>Update A Record in MYTABLE Table (Oracle) Using ooo</H

The record (ID=<%=fID%>) has been updated successfully!<br>

You can view the result <a > here</a>

<p>

<a javascript:windowhistorygo()> Back previous Page</a>

&bnsp;&bnsp;

<a javascript:windowhistorygo()> Back home Page</a>

<%

删除OraSession对象

Set OraSession = Nothing

%>

</body></html>

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

使用存储过程

我们已经讨论了如何在ASP中访问Oracle数据库所有的SQL语句都可以嵌入在ASP网页中如果

上一篇:oracle内存调优参数详解

下一篇:详解Oracle10g中MERGE功能的增强