您的位置:首页精文荟萃软件资讯 → 在ASP中使用Oracle数据库技巧

在ASP中使用Oracle数据库技巧

时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



             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.   
  
  初始化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))



  %>

  



  



  

Retrieve All Records in MYTABLE1 Table ( in Oracle)



  Using oo4o





  



  <%



  Do While(OraDynaset.EOF = FALSE)



  Response.Write("")



  OraDynaset.MoveNext



  Loop



  ''删除OraSession Set OraSession = Nothing



   %>



  
")



  Response.write(OraDynaset.Fields("ID"))



  Response.Write("
")



  Response.write(OraDynaset.Fields("UserName"))



  Response.Write("
")



  Response.write(OraDynaset.Fields("Phone"))



  Response.Write("
")



  Response.write(OraDynaset.Fields("Email"))



  Response.Write("




  



  Back previous Page
|



   Back home Page



  



  

  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



  %>



  



  


  

Update A Record in MYTABLE1 Table (Oracle) Using oo4o





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




  You can view the result here



   Back previous Page



  &bnsp;&bnsp;



   Back home Page

  <%

  ''删除OraSession对象



  Set OraSession = Nothing



  %>



  



  



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



  使用存储过程



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



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

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本