ASP(Active Server Pages)是微软公司为开发互联网应用程序所提出的工具之一ASP与数据库的联接一般通过ADO(Activex Data Object)来实现的就象《计算机世界》年月日的《用ASP对SQL Server数据库操作》文章介绍的一样ADO可以完全支持Microsoft SQL Server 但对应用更加广泛机制更加复杂的ORACLE 数据库服务就有一些困难如果想作一些简单的查询功能ADO是足够的如要想更好地发挥ORACLE数据库特有的功能如STORED PROCEDURESTORED FUNCTION等就要采取利用ASP存取ORACLE 数据库服务的另一个强有力工具——Oracle Object for OLE中的ORACLE对象服务器(The Oracle Object Server)本文从一个实例说明如何在ASP中使用ORACLE对象服务器提供的控件来实现对ORACLE数据库的存取并就如何维护网络数据库的完整性约束问题进行一些讨论
Oracle Object for OLE是ORACLE公司为了客户端存取数据库所发展的一个很需要的产品它以Windows //NT 为基础供所有的与OLE 兼容的应用程序与程序语言存取ORACLE数据库如ASPVisual Basic excess等 Oracle Object for OLE包含了ORACLE对象服务器(The Oracle Object Server)ORCLE 数据控制项(The Oracle Data Control)与ORACLE 对象类程序库(The Oracle Objects for OLE C++ Class Library)等三项产品
与ADO相比ORACLE对象服务器是专用于ORACLE数据库应用程序开发的产品它有以下优点
() 与数据库服务器的连接的运行效率好因为ADO是通过ODBC来连接数据库服务器的而ORACLE对象服务器是通过ORACLE的SQL*NET来连接数据库服务器的
() 能更好地发挥ORACLE数据库的特有功能如STORED PROCEDURESTORED FUNCTIONPACKAGE或Multiple Cursor
本例是一个通讯录的查询录入的小程序用户可以通过浏览器对通讯录表进行查询也可把自己的信息输入供别人查询
通讯录表的结构如下
NameNull?Type
NAMENOT NULL CHAR()
ADDRESSCHAR()
PHONECHAR()
EMAILVARCHAR()
首先进行环境配置
在WEB服务器上安装以下软件并进行配置
()基本的WEB 服务器(WEB SERVER)与ASP等软件
()Oracle Object for OLEx
()SQL*Net Client 或 Oracle Net Client 安装之后用Sql*Net Easy Configuration建立数据库别名(Database Alias)为ASP连接到数据库所用的别名
二.功能实现
()查询用ASP 取数据库通讯录表(TSB)的数据将数据显示在屏幕上查询的关键在于确定与数据库的连接成功与否ORACLE对象服务器本身有错误控制机制可以报出数据库连接方面的错误具体的程序如下
< HTML >
< tile >查询程序 < /title >
< BODY >
< %
on error resume next
连接数据库
set orasession=createobject
(OracleInprocServerXOraSession)
set oradatabase=orasession
dbopendatabase(axpscott/tiger)
出错处理
if errnumber > then
responsewrite< h >asp 错误控制 < /h >
responsewriteasp 错误来源:&errsource &< br >
responsewriteasp 错误代码:&errnumber&< br >
responsewriteasp 错误说明:&errdescription&< br >
errclear
responsewrite< h >ORACLE OLE 错误控制< /h >
responsewriteORACLE 错误代码:
&OraSessionLastServerErr&< br >
responsewriteORACLE 错误说明:
&OraSessionLastServerErrText&< br >
else
查询
sql=select * from tsb
set oradynaset=oradatabasedbcreatedynaset(sql)
responsewrite< h >result< /h >
responsewrite< table border= >< tr >
for i= to ount
responsewrite< td >
responsewrite oradynasetfields(i)name &
responsewrite< /td >
next
responsewrite< /tr >
do until oradynaseteof
responsewrite< tr >
for i= to ount
responsewrite< td >
responsewrite oradynasetfields(i)value
responsewrite< /td >
next
responsewrite< /tr >
oradynasetdbmovenext
loop
responsewrite< /table >
关闭数据库
oradatabaseclose
set orasession=nothing
end if
% >
< /body >
< /html >
下面是程序的查询结果图面
通讯录
NAME ADDRESS PHONE EMAIL
张玲 马鞍山市湖北路号 zhcn
林向 马鞍山市湖南路号 lcn
邓国虹 采矿路子幢号
李城 青岛海洋大学幢
王国在 采矿小区幢号 cn
丁刚 红旗南路幢号 dcn
全在保 江西路子幢号
()插入自己的信息用ASP将用户在浏览器上提供的数据插入到数据库通讯录表(TSB)中由ORACLE数据库有一套完整性约束机制所以插入过程不光是简单地把数据插入到表中还要做完整性约束的检查不合要求的数据拒绝插入如果在程序中不考虑处理运行时就会因数据库服务器报错而中断程序而ASP中的ERR对象可以报出错误来源错误代码错误说明等并能把程序引向错误处理
以下是程序一个是 是一个输入界面供用户输入自己的信息一个是insertasp负责将用户输入信息插入数据库并进行错误检查
:
< html >
< head >
< meta httpequiv=ContentLanguage
content=zhcn >
< meta httpequiv=ContentType
content=text/html; charset=gb >
< meta name=GENERATOR content=
Microsoft FrontPage >
< meta name=ProgId content=
FrontPageEditorDocument >
< title >请留下你的信息< /title >
< /head >
< body >
< p align=center >请输入你的信息< /p >
< form method=post action=insertasp >
姓名
< input type=text name=name size= > < br >
地址
< input type=text name=address size= > < br >
电话
< input type=text name=phone size= > < br >
EMAIL< input type=text name=email size= > < br >
< input type=submitvalue=确定 >
< input type=resetvalue=取消 >< br >
< /form >
< /body >
< /html >