品牌创意企业推荐 推荐: 网站建设 上海网站建设 上海网页设计 
 
搜索 竞赛 产业 文案 论吧 论坛 酷站 矢量库 图片库 设计网址 作品集> 注册 - 登陆
首 页设计资讯大赛征集平面设计UI设计CG/动画工业设计建筑环境数码影像教程区设计访谈 精品欣赏会员作品集
>> 论坛发布优秀教程申请个人教程专区
推荐:经典素材资源
滚动新闻:[6-10]融于意,形于展!---52design作品集、设计师网上联展!
当前位置: 首页 >> 教程 >> 程序相关教程 >>正文
在ASP中使用Oracle数据库技巧
资讯/教程/作品在线投稿  - 进入素材基地 - 论坛讨论 - 查看更多相关内容
时 间:2007-8-30 17:12:57   作者:   来 源:52design.com   浏览:
    Oracle是世界上用得最多的数据库之一,活动服务器网页(ASP)是一种被广泛用于创建动态网页的功能强大的服务器端脚本语言。许多ASP开发人员一直在考虑,能否在开发互联网应用、电子商务网站、互联网管理系统时结合使用ASP和Oracle数据库?这个问题的答案是肯定的,我们还可以使用VB访问Oracle数据库。在本篇文章中,我们将主要讨论如何使用ASP来处理Oracle数据库中数据的方法。
·设计师个人作品集火热申请中!
·查询网站排名推荐您用Chianz排名查询
·“论吧”正式上线 欢迎参与主题讨论
·全球经典酷站推荐欣赏
·矢量素材 给设计师提供强大后盾
·加入设计师论坛,精彩无限
·设计网址大全,免费收录所有设计站点

   
    在开始讨论这个问题前,我们需要了解几个背景知识,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))
  
  
  
     %>
  
    <html>
  
  
  
    <body>
  
  
  
    <H3>Retrieve All Records in MYTABLE1 Table ( in Oracle)
  
  
  
    Using oo4o</H3>
  
  
  
    <table border=1 ID="Table1">
  
  
  
    <%
  
  
  
    Do While(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 Set OraSession = Nothing
  
  
  
     %>
  
  
  
    </table>
  
  
  
    <a href="javascript:window.history.go(-1)">
  
  
  
    Back previous Page</a> |
  
  
  
    <a href="index.html"> Back home Page</a>
  
  
  
    </body>
  
  
  
    </html>
  
    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
  
  
  
    %>
  
  
  
    <html>
  
  
  
    <body>
  
  
    <H3>Update A Record in MYTABLE1 Table (Oracle) Using oo4o</H3>
  
  
  
    The record (ID=<%=fID%>) has been updated successfully!<br>
  
  
  
    You can view the result <a href="RetrieveAllRec.asp"> here</a>
  
  
  
    <a href="javascript:window.history.go(-1)"> Back previous Page</a>
  
  
  
    &bnsp;&bnsp;
  
  
  
    <a href="javascript:window.history.go(-2)"> Back home Page</a>
  
    <%
  
    ’删除OraSession对象
  
  
  
    Set OraSession = Nothing
  
  
  
    %>
  
  
  
    </body>
  
  
  
    </html>
  
  
  
    至此,我们已经讨论了如何在ASP代码中使用Oracle Objects for OLE来处理Oracle数据库中的数据。
  
  
  
    使用存储过程
  
  
  
    我们已经讨论了如何在ASP中访问Oracle数据库,所有的SQL语句都可以嵌入在ASP网页中。如果在ASP中使用存储过程,将更能够更有效地处理数据。我建议读者除在ASP中嵌入SQL语句外,还应当使用PL/SQL存储过程。在Oracle数据库中创建存储过程已经超出了本文章的范围,在这里就不再进行介绍了。
  
  
  
    ASP和Oracle数据库是二种比较流行的技术,都有相当广泛的用户群,如果能够有机地将二者结合起来,将能够给工作带来许多方便,希望这篇文章能够起到抛砖引玉的作用,使读者能够更好地探索将这二种技术结合使用的途径。
本文链接:


52design素材资源库52design图片库52design酷站营

我爱设计网www.52design.com
(在线编辑:morion) 】【打印】【关闭】【设计论坛】【设计师作品集
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。

经典设计欣赏 设计关键字:VI 新锐 包装 装帧 海报 地产广告 画册 名片 标志 软件界面 ICO 网页
C70精美同人游戏CG壁纸大合集
C70精美同人游
《吞食天地》官方壁纸
《吞食天地》官方
《三国演义OL》壁纸欣赏
《三国演义OL》
精美3D卡通动物
精美3D卡通动物
《万王之王2》官方壁纸
《万王之王2》官
蔡志忠《大话少林》精美动画壁纸
蔡志忠《大话少林
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站
个性展示 网站教学 工 作 室 学校教育 卡通漫画 文化艺术 体育运动 美容健身 食品饮料
当日文章推荐 查看更多相关内容
时装展示| 大S徐熙媛代言仔裤欣赏 [8-30]会展| 七宗罪:中国现代艺术大展上的七个行为 [8-30]
会展| 纪事,美域,未来 ——七零后新锐艺术 [8-30]工业资讯| 我国工业设计年产值达300亿 占世界 [8-30]
工业大赛| “方太杯”绿色家电全民创意工业设计大 [8-30]工业大赛| 2007“无锡(国家)工业设计园”杯 [8-30]
设计资源| 设计元素第四波:超酷设计元素矢量图8 [8-30]综合艺术| 亚洲青年动漫大赛暨中国(贵阳)卡通艺 [8-30]
互联网动态| 360buy京东商城网获1000万美 [8-30]互联网动态| 网站擅用美女照片做广告被判赔八千 [8-30]
互联网动态| 公司设计员开办成人网站赚钱 [8-30]综合艺术| 设计招投标何时去“流氓气”? [8-30]
会员作品集推荐 查看更多推荐会员作品
平面作品 | 插画作品 | 网页作品 | 包装作品 | 软件UI | 室内设计 | 数码摄影作品 | 建筑环境 | 工业设计 | 其他
地产项目-他作欣赏3jobWEB界面与聊天界面设计MMOSITE-kart专区MMOSITE-sof专区:《QQ魔域》2.0公测专题页面首页
个人网站GUDONG`ROOM3D展示排行榜碎布娃娃—10

数据载入中...
视觉焦点
优秀作品在线投稿
大S徐熙媛代言仔裤欣赏
大S徐熙媛代
River City Roundup Rodeo 平面广告设计
River
designsoldier 平面设计
design
polar design 平面设计欣赏
polar

站点新入
C70精美同人游戏CG壁纸大合集
C70精美同
《吞食天地》官方壁纸
《吞食天地》
展区
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站 个性展示 网站教学 工 作 室 学校教育
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站 文化艺术 体育运动 美容健身 食品饮料
网站名称:theodoru
网站地址:http://www.theodoru.com/
加入时间:2008-11-27 15:43:55
网站名称:bohrcafe
网站地址:http://www.bohrcafe.com/
加入时间:2008-11-27 15:43:20
网站名称:e-stradivarius
网站地址:http://www.e-stradivarius.com/
加入时间:2008-11-27 15:42:45
网站名称:toyotasw4
网站地址:http://www.toyotasw4.com.br/
加入时间:2008-11-27 15:39:48
网站名称:travislum
网站地址:http://www.travislum.com/
加入时间:2008-11-27 15:39:09
网站名称:nokia-li
网站地址:http://www.nokia-li.com.cn/ranking/
加入时间:2008-11-27 15:36:28
关于本站 | 联系方式 | 商业服务 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 在线投稿