简单生活 发表于 2015-1-16 22:37:45

ASP网页设计在ASP中利用Oracle数据库

优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件Oracle是天下上用得最多的数据库之一,举动服务器网页(ASP)是一种被普遍用于创立静态网页的功效壮大的服务器端剧本言语。很多ASP开辟职员一向在思索,可否在开辟互联网使用、电子商务网站、互联网办理体系时分离利用ASP和Oracle数据库?这个成绩的谜底是一定的,我们还可使用VB会见Oracle数据库。在本篇文章中,我们将次要会商怎样利用ASP来处置Oracle数据库中数据的办法。

  在入手下手会商这个成绩前,我们必要懂得几个背景常识,OracleObjectsforOLE就是个中之一。OracleObjectsforOLE是Oracle开辟的一其中间件,它同意利用微软的OLE尺度的客户端使用程序会见Oracle的数据库。大概会有读者说,我们也能够利用ODBC会见Oracle的数据库。固然,可使用ODBC会见Oracle数据库,但我以为,OracleObjectsforOLE比ODBC更平安,并且完整撑持PL/SQL。PL/SQL是Oracle对SQL命令集的扩大,开辟职员可以使用它对非布局化的SQL命令块举行流把持和逻辑计划。假如安装的是Oracle8i数据库,我信任你已在利用OracleObjectsforOLE。假如还没有利用OracleObjectsforOLE,能够从Oracle的网站高低载它。

  别的,我们还必要懂得Oracle针对VisualBasic开辟的二个工具和一个接口:OraSession、OraDynaset工具和OraDatabase接口。OraSession工具办理使用程序的OraDatabase、OraConnection和OraDynaset,它是由ASP的CreateObject而不是OracleObjectsforOLE创立的一个工具。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)UserName(type:varchar2)Phone(type:varchar2)Email(type:varchar2)100ColinTong999-999-8888colinjava@hotmail.com111JohnWhite888-888-8888johnw@yahoo.com101DonWod416-333-3344donwod@test.com数据的会见和存取

  1)InstantiateOO4OObject,OraSessionandinterfaceOraDatabaseforconnectingtoORACLE.

  1)初始化OracleObjectsforOLE、OraSession工具和OraDatabase接口,为毗连ORACLE数据库作筹办。

  起首,利用CreateObject创立OraSession工具,然后经由过程翻开一个与Oracle的毗连创立OraDatabase工具,以下所示:
<%
SetOraSession=CreateObject("OracleInProcServer.XOraSession")
SetOraDatabase=OraSession.OpenDatabase("",_
"username/password",Cint(0))
%>  “username”和“password”是你所利用的干系数据库的用户名和口令。

  2)创立OraDynaset工具实行SQL命令。我们可使用CreateDynaset或DbCreateDynaset创立纪录集。
<%
executeSQL
SetOraDynaset=OraDatabase.DbCreateDynaset(_
"select*frommytable1",cint(0))
%>  3)存取数据并删除创立的工具。


<%
DoWhile(OraDynaset.EOF=FALSE)
Response.write(OraDynaset.Fields("ID"))
Response.write(OraDynaset.Fields("UserName"))
...others...
......
OraDynaset.MoveNext
Loop
removeOraSession
SetOraSession=Nothing
%>  编纂数据纪录

  我们将利用OraDynaset的办法完成对数据纪录的编纂。

  1)利用SQL语句创立OraDynaset工具。
<%
创立ID=fID的纪录的OraDynaset工具。
SetOraDynaset=OraDatabase.CreateDynaset(_
"select*fromMYTABLE1whereID="&fID,cint(0))
%>  fID是想拔出更更新的纪录的ID值。

  2)实行OraDynaset更新或增加数据纪录。

<%
利用Edit办法更新ID=fID纪录的域。
或利用AddNew拔出一个新纪录
OraDynaset.Edit
OraDynaset.Fields("Phone").Value=fPhone
OraDynaset.Update删除创立的对话
SetOraSession=Nothing
%>

删除数据纪录

  假如已真正地舆解了我们在下面会商的一些办法(Edit、Update和AddNew),大概有的读者已晓得该怎样在Oracle数据库中删除纪录了。


<%
删除一切切合下面前提的纪录
OraDynaset.Delete
%>
  在Oracle8i中搜刮和更新数据纪录的代码
  1)搜刮
<%
RetriveRecProc.asp-利用ASP的OracleObjectsforOLE更新数据纪录%>
<%
界说作为OLE工具的变量
DimOraSession
DimOraDatabase
DimOraDynaset创立OraSession工具
SetOraSession=CreateObject("OracleInProcServer.XOraSession")经由过程翻开Oracle数据库的一个毗连创立OraDatabase工具
必定要利用本人的用户名和口令会见Oracle数据库
SetOraDatabase=OraSession.OpenDatabase("","user/password",_
Cint(0))

创立OraDynaset工具实行SQL语句
SetOraDynaset=OraDatabase.DbCreateDynaset(_
"select*frommytable1",cint(0))
%>
<html><body>
<H3>RetrieveAllRecordsinMYTABLE1Table(inOracle)
Usingoo4o</H3>
<tableborder=1ID="Table1">
<%
DoWhile(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
SetOraSession=Nothing
%>
</table>
<ahref="javascript:window.history.go(-1)">
BackpreviousPage</a>|
<ahref="index.html">BackhomePage</a>
</body></html>
  2)更新
<%
UpdateRecProc.asp-利用ASP的OracleObjectsforOLE更新数据纪录
%>
<%
界说作为OLE工具的变量。
DimOraSession
DimOraDatabase
DimOraDynaset

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

创立OraSession工具
SetOraSession=CreateObject("OracleInProcServer.XOraSession")

经由过程翻开Oracle数据库的一个毗连创立OraDatabase工具
SetOraDatabase=OraSession.OpenDatabase("","user/password",_
Cint(0))

创立ID=fID的纪录的OraDynaset工具
SetOraDynaset=OraDatabase.CreateDynaset(_
"select*fromMYTABLE1whereID="&fID,cint(0))
利用Edit办法更新ID=fID纪录的字段
DoWhile(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>UpdateARecordinMYTABLE1Table(Oracle)Usingoo4o</H3>
Therecord(ID=<%=fID%>)hasbeenupdatedsuccessfully!<br>
Youcanviewtheresult<ahref="RetrieveAllRec.asp">here</a>
<p>
<ahref="javascript:window.history.go(-1)">BackpreviousPage</a>
&bnsp;&bnsp;
<ahref="javascript:window.history.go(-2)">BackhomePage</a>
<%
删除OraSession工具
SetOraSession=Nothing
%>
</body荆?html>
  至此,我们已会商了怎样在ASP代码中利用OracleObjectsforOLE来处置Oracle数据库中的数据。

  利用存储历程

  我们已会商了怎样在ASP中会见Oracle数据库,一切的SQL语句都能够嵌进在ASP网页中。假如在ASP中利用存储历程,将更可以更无效地处置数据。我倡议读者除在ASP中嵌进SQL语句外,还应该利用PL/SQL存储历程。在Oracle数据库中创立存储历程已超越了本文章的局限,在这里就不再举行先容了。

  ASP和Oracle数据库是二种对照盛行的手艺,都有相称普遍的用户群,假如可以无机地将两者分离起来,将可以给事情带来很多便利,但愿这篇文章可以起到举一反三的感化,使读者可以更好地探究将这二种手艺分离利用的路子。

由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。

再现理想 发表于 2015-1-19 19:30:21

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

小妖女 发表于 2015-1-24 22:01:01

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

海妖 发表于 2015-2-2 13:06:47

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习

金色的骷髅 发表于 2015-2-7 20:45:37

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

愤怒的大鸟 发表于 2015-2-23 10:37:58

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

再见西城 发表于 2015-3-7 08:10:55

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

莫相离 发表于 2015-3-14 15:14:31

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

变相怪杰 发表于 2015-3-21 10:56:14

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
页: [1]
查看完整版本: ASP网页设计在ASP中利用Oracle数据库