|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合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提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 |
|