0DBC:开放式的数据库连接(OpenDatabaseConnectivity):是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未作优化。
ODBCDirect:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。
OLEDB:是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLEDB不能被VB直接调用。
RDC:远程数据访问控件(RemoteDataControl):是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。
RDO:远程数据对象(RemoteDataObjects):远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBCAPI的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。
VBSQL:是VisualBasic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-LibraryAPI相同。VBSQL只支持微软的SQLServer。VBSQL快而且轻但不支持对象界面。
使用RDO的一般方法如下:
先声明变量: PublicconAsrdoConnection,resAsrdoResultset 然后初始化rdoEngine, 设置用户和口令等缺省参数;WithrdoEngine .rdoDefaultUser="sa"'用户为sa .rdoDefaultPassword="pass"'口令为pass .rdoDefaultCursorDriver=rdUseServer .rdoDefaultLoginTimeout=15 EndWith 再连接到要访问的远程数据库 (可使用DSNConnection和DSN-LessConnection)。 使用DSNConnection举例 (连接服务器SERVER上的数据库hotel): Setcon=rdoEnvironments(0).OpenConnection ("hotel",rdDriverNoPrompt,False) 使用DSN-LessConnection举例 (连接服务器SERVER上的数据库hotel): Setcon=rdoEnvironments(0).OpenConnection ("",rdDriverNoPrompt,False,_"driver= { SQLServer };server=SERVER;database=hotel")
建立连接后,既可使用OpenResultset方法执行查询并处理结果集,又可使用Execute方法执行包括数据定义和数据操作在内的动作查询。例如:
Setres=con.OpenResultset ("SELECT*FROMmenu",rdOpenStatic) con.Execute"CREATEVIEWmenu_viewASSELECT代码, 菜名FROMmenu",rdExecDirect
RDO最强大和最重要的特性之一是:它可以查询和处理由存储过程返回的结果,无论它有多么复杂。
除RDO外,还可使用RDC访问远程数据库。
远程数据控件(RDC)与数据控件(DC)类似,不同之处是RDC使用RDO连接到ODBC驱动程序管理器,而DC则使用DAO连接到Jet数据库引擎。利用RDO和RDC,无需使用Jet引擎就可以访问ODBC数据源。这样,在访问远程数据库时,可以获得更好的性能和更大的灵活性。
远程数据控件MSRDC使用举例如下。
Connect:driver={ SQLServer };server=SERVER;database=hotel DataSourceName: SQL:SELECT*FROMmenu UserName:sa Password:pass CursorDriver:3-rdUseClient
可以使用RDC执行许多简单的远程数据访问操作,不需编写任何代码,只要填写有关项就可以了,使用起来很方便。但应注意,除非在设计时禁止并只在需要时启动RDC,否则它至少将消耗一个远程数据库连接。在远程数据库连接资源有限或要求很高效的情况下,宜慎用、少用RDC。这种情况下,应尽可能考虑使用RDO,并使用存储过程(预编译好的SQL语句)。
最后还应注意,只有32位操作系统(如WindowsNT或Windows95),才能支持RDO和RDC。RDO和RDC也只能用于访问32位ODBC数据源。
(编辑:aniston)
|