欢迎来到天天文库
浏览记录
ID:21192105
大小:214.50 KB
页数:5页
时间:2018-10-20
《oracleobjectsforole及在vb中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、OracleObjectsforOLE及在VB中的应用一般说来,访问远程后台数据库我们都是通过ODBC来完成的。但是,ODBC有一个致命的缺点——速度慢。事实上,对于ORACLE数据库,除了ODBC,我们还可以利用ORACLE本身所提供的OLE对象(OracleObjectsforOLE)来实现快速访问有关数据库。在ORACLEV8中,OracleObjectsforOLE(以下简称00)为常用开发工具提供了一整套与数据库简单相连的通讯访问方式,它支持各种支持VB自定义控件或OLE自动化(OLEAutomation)的开发环境。00主要由三部分组成:•ORACL
2、E对象服务器(theOracleObjectServer)•ORACLE数据访问控件(theOracleDataControl)•C++类库(theOracleObjectsforOLEC++ClassLibrary)00主要包括对象和用途:OraClient定义工作域,并管理会话集。OraSession管理数据库对象集,并提供共享式连接和事务控制OraConnection与ORACLE数据之间建立的连接。OraDatabase对ORACLE数据库的一个“虚”登录。OraParamArray参数组。OraParameter绑定在SQL语句或PL/SQL块屮的有关
3、变量。OraDynaset利用SELECT语句所得到的记录。OraSQLStmt预定义的单独的一句SQL语句。OraFieldOraDynaset对象中的列(Column)。下图展示了OO的三种组成部分与ORACLE数据库之间的关系。Client:..........sQL*NetandNetworkServer下图是各对象之间的关系:OraClientz下面以VB为例,主要讲一下ORACLE对象服务器(theOracleObjectServer)和ORACLE数据访问控件(theOracleDataControl)的有关成用。一、ORACLE数据访问控件(th
4、eOracleDataControl)要在VB中使用数据访问控件ORADC(OracleDataControl)须先在项目(Project)中加入部件ORADC.OCX(通常它放在ORACLE的缺省路径下的BIN目录下),然后在FORM上加入一个ORADC,查看它的有关属性,可以看到,它与VB所带的RDO(RemoteDataObject)相同,存Connect和DatabaseName两个属性。但注意,此处的属性的填写与RDO不同,DATABASE处加入的是在ORACLE设置中所命名的HostString,而Connect则需填入用户名和口令,如:•••*设置
5、用户名和口令oradatal.Connect=’’UserName/Password”1设置数据库名oradata1.DatabaseName="DBName"1指定表oradatal.RecordSource="select*frommyTable”1刷新数据oradatal.Refresh•••其它操作均与RemoteDataControl相同。二、ORACLE对象服务器(theOracleObjectServer)在VB里,OraSession、OraDataBase、OraDynaset分别与VB内置的RDO对象rdoConnection、rdoEnvi
6、ronment、rdoResultset相类似,不同的只是它们的定义方式不同。*定义OLE对象变量DimOraSessionAsObjectDimOraDatabaseAsObjectDimOraDynasetAsObject•建立OraSession对象。注意,该对象只需建立一次。SetOraSession=CreateObject("OracleInProcServer.XOraSession")1建立与ORACLE数据库的连接SetOraDatabase=OraSession.DbOpenDatabaseC'DBName","UserName/Passwo
7、rd",0&)•建立OraDynaset对象SetOraDynaset=OraDatabase.DbCreateDynaset(’’select*fromtablename",0&)*幵始一个事务OraSession.DbBeginTransDoUntilOraDynaset.EOFIfOraDynaset.Fields(“myFieldl”).value<100ThenGotoTranErrOraDynaset.DbEditOraDynaset.Fields("myFieldln).value=0OraDynaset.DbUpdateOraDynaset.Db
8、MoveNextLoop
此文档下载收益归作者所有