|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
VB访问数据的方法很多,一般情况下分成两大类,而每一类又有很多方法。
数据访问接口功能及含义:
ADC:高级数据连接器(AdvancedDataConnector):提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLEDB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。
ADO:Active数据对象(ActiveDataObjects):ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
DAO:数据访问对象(DataAccessObjects):是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据,使用DAO/ODBCDirect功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。
DAO模型是设计关系数据系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据,定义表、字段和索引,建立表间的关系,定位和查询数据等工具。
JET:数据连接性引擎技术(JointEngineTechnology):是一种基于工作站通过DAO的数据访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。
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数据源。 |
|