免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle Objects for OLE及在VB中的应用 一般说来,访问远程后台数据库我们都是通过ODBC来完成的。但是,ODBC有一个致命的缺点速度慢。事实上,对于ORACLE数据库,除了ODBC,我们还可以利用ORACLE本身所提供的OLE对象(Oracle Objects for OLE)来实现快速访问有关数据库。在ORACLE V8中,Oracle Objects for OLE(以下简称OO)为常用开发工具提供了一整套与数据库简单相连的通讯访问方式,它支持各种支持VB自定义控件或OLE自动化(OLE Automation)的开发环境。OO主要由三部分组成:l ORACLE对象服务器(the Oracle Object Server)l ORACLE数据访问控件(the Oracle Data Control)l C+类库(the Oracle Objects for OLE C+ Class Library)OO主要包括对象和用途: OraClient 定义工作域,并管理会话集。OraSession 管理数据库对象集,并提供共享式连接和事务控制。OraConnection 与ORACLE数据之间建立的连接。OraDatabase 对ORACLE数据库的一个“虚”登录。OraParamArray 参数组。OraParameter 绑定在SQL语句或PL/SQL块中的有关变量。OraDynaset 利用SELECT语句所得到的记录。OraSQLStmt 预定义的单独的一句SQL语句。OraField OraDynaset对象中的列(Column)。下图展示了OO的三种组成部分与ORACLE数据库之间的关系。下图是各对象之间的关系: 下面以VB为例,主要讲一下ORACLE对象服务器(the Oracle Object Server)和ORACLE数据访问控件(the Oracle Data Control)的有关应用。一、ORACLE数据访问控件(the Oracle Data Control) 要在VB中使用数据访问控件ORADC(Oracle Data Control)须先在项目(Project)中加入部件ORADC.OCX(通常它放在ORACLE的缺省路径下的BIN目录下),然后在FORM上加入一个ORADC,查看它的有关属性,可以看到,它与VB所带的RDO(Remote Data Object)相同,有Connect和DatabaseName两个属性。但注意,此处的属性的填写与RDO不同,DATABASE处加入的是在ORACLE设置中所命名的HostString,而Connect则需填入用户名和口令,如:. 设置用户名和口令 oradata1.Connect = UserName/Password 设置数据库名 oradata1.DatabaseName = DBName 指定表 oradata1.RecordSource = select * from myTable 刷新数据 oradata1.Refresh.其它操作均与Remote Data Control相同。二、 ORACLE对象服务器(the Oracle Object Server)在VB里,OraSession、OraDataBase、OraDynaset分别与VB内置的RDO对象rdoConnection、rdoEnvironment、rdoResultset相类似,不同的只是它们的定义方式不同。定义OLE对象变量Dim OraSession As ObjectDim OraDatabase As ObjectDim OraDynaset As Object建立OraSession对象。注意,该对象只需建立一次。Set OraSession = CreateObject(OracleInProcServer.XOraSession)建立与ORACLE数据库的连接Set OraDatabase = OraSession.DbOpenDatabase(DBName, UserName/Password, 0&)建立OraDynaset对象Set OraDynaset = OraDatabase.DbCreateDynaset(select * from tablename, 0&)开始一个事务OraSession.DbBeginTransDo Until OraDynaset.EOF If OraDynaset.Fields(“myField1”).value100 Then Goto TranErr OraDynaset.DbEdit OraDynaset.Fields(myField1).value = 0 OraDynaset.DbUpdate OraDynaset.DbMoveNext Loop 结束事务处理 OraSession.DbCommitTranErr: 事务回滚 OraSession.DbRollback 除了简单地访问数据库以外,还可以利用ORACLE对象服务器带参数调用ORACLE的存储过程和PL/SQL块。下面的程序段调用ORACLE过程来实现根据人员代码检索姓名的功能。ORACLE过程:PROCEDURE GetAge (userid IN CHAR, userage OUT NUMBER) is BEGIN SELECT age into userage from userinfo WHERE usercode=userid;END GetAge;VB程序段:Sub Form_Load ()定义OLE对象变量.Dim OraSession As ObjectDim OraDatabase As ObjectDim OraSqlStmt As Object建立OraSession对象.Set OraSession = CreateObject(OracleInProcServer.XOraSession)建立与ORACLE数据库的连接Set OraDatabase = OraSession.DbOpenDatabase(DBName, UserName/Password, 0&)OraDatabase.Parameters.Add userid, “00301”, ORAPARM_INPUTOraDatabase.Parameters(userid”).ServerType = ORATYPE_CHAR OraDatabase.Parameters.Add userage, 0, ORAPARM_OUTPUTOraDatabase.Parameters(userage).ServerType =ORATYPE_NUMBER 调用ORACLE过程 Set OraSqlStmt=OraDatabase.CreateSQL(Begin PackageName.GetAge(:userid,_:userage); end;, 0&) 显示检索结果MsgBox OraDatabase.Parameters(userage).Value 改变参数userid的值,进行新一轮检索OraDatabase.Parameters(userid).Value = “00503”刷新调用OraSqlStmt.DbRefresh显示检索结果MsgBox OraDatabase.Parameters(userage).Value 删除参数OraDatabase.Parameters.Remove (userid)OraDatabase.Pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河北省沧州市沧衡名校联盟高三上学期期中考试历史试题(含答案)
- 蛋白质-能量失衡的护理
- 三心聚力航向未来:高一成长赋能交流会
- 2026教育部教育技术与资源发展中心(中央电化教育馆)招聘3人备考题库(非事业编)附答案
- 2026年网络预约出租汽车驾驶员从业资格考试题库附答案【完整版】
- 2026年房地产经纪协理之房地产经纪操作实务考试题库附完整答案(必刷)
- 2026年房地产经纪协理之房地产经纪操作实务考试题库附参考答案(典型题)
- 2026年设备监理师之质量投资进度控制考试题库200道及完整答案(名校卷)
- 2026年国家电网有限公司华东分部高校毕业生招聘历年真题汇编及答案解析(夺冠)
- 2025四川地质医院下半年考核招聘工作人员2人模拟试卷附答案解析
- 初中英语语法课件-表示从属关系的连词
- 《数据采集技术》课件-使用 urllib 爬取网页
- 【MOOC】英文技术写作-东南大学 中国大学慕课MOOC答案
- 感冒课件主题教学课件
- 中华人民共和国学前教育法-知识培训
- 智慧医院ICU建设方案
- 2024年初中历史新课标考试题库(含答案)
- 妇科室医疗质量与安全管理制度
- 仁爱版初中英语知识点归纳(七-九年级全册)
- 22G101三维彩色立体图集
- 从创意到创业智慧树知到期末考试答案章节答案2024年湖南师范大学
评论
0/150
提交评论