目前,绝大多数的数据库参考书都介绍了ODBC的手工配置方法,或者介绍了如何在代码中进行ODBC配置。但这两种方法都有一定的局限性: 不是当程序最终完成并分发到用户手中后,还需要为用户配置ODBC,显得既麻烦又不符合专业软件的要求;就是得编写复杂的更改操作系统
注册表文件的
程序,十分烦琐。本文从ADO(ActiveX Data Objects)入手,介绍无需配置数据源的几种常用大型数据库连接方法。
本文所述的无“数据源”连接,意义不是不需要数据源,否则连接无从谈起,而是不需要配置注册数据源所进行的连接。ODBC(Open DataBase Connectivity,开放式数据库连接)是用于连接不同数据源的标准编程语言接口。许多文章中介绍,在实现ODBC时,必须首先配置ODBC环境,进行数据源的注册,然后才能在对数据库编程时,对数据源进行连接、访问和操作,并提供了用PB或
vb等语言工具实现数据源注册的具体方法。这些方法不但复杂烦琐,而且由于参数内容不一,配置时令人感觉无所适从,不宜把握。
走近ADO
ADO是微软提供的数据库访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)能力。OLE DB是一个底层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象等。
ADO提供了一个熟悉的、高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,可以把OLE DB看作ODBC驱动程序,如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口。同样,像不同的数据库系统需要它们自己的ODBC驱动
程序一样,不同的数据源也要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并计划用OLE DB取代ODBC。
微软公司已宣布今后不会对VB SQL/DBLib进行升级,而且ODBC API函数一级的编程方式也不为人们所喜爱,所以,RDO今后将被以ActiveX技术为基础的ADO所替代。ADO是基于OLE DB之上的技术,它通过内部的属性和方法提供统一的数据库访问接口。
1.ADO组件
● Microsoft ActiveX Data Objects (ADO) :使客户端应用
程序能通过OLE DB提供者访问和操作数据库服务器中的数据。
● ActiveX Data Objects Extensions for DDL and Security(ADOX) :将ADO扩展为包括创建、修改和删除的模式对象,如表格和过程,以及包括用于维护用户和组以及管理对象权限的安全对象。
● ActiveX Data Objects (Multidimensional) (ADO MD): 将ADO扩展为包括指定到多维数据的对象,并允许浏览多维模式、
查询立方和检索结果。
2.ADO优点
● ADO具有高度的灵活性,它可以使用相同的编程模式连接到不同的数据提供者,而不管给定提供者的特定特性。
● 较低的内存占用率。
● 具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中将数据从服务器移动到客户端应用
程序或Web页,并在客户端对数据进行处理后将更新结果返回服务器。
● 同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。可以只创建一个“Connection”对象,然后由多个独立的“Recordset”对象来使用它。
● ODBC本身是以SQL Server、Oracle等关系数据库作为访问对象,而OLE DB则不仅限于此,它还可以对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。
OLE DB Provider for ODBC是ADO的默认提供者,默认值是MSDASQL,如果省略连接字符串的Provider=参数,ADO将试图建立与该提供者的连接。
ADO的连接方式主要可分为OLE DB Privder方式与OLE DB Provider for ODBC方式。前者很明显是微软公司极力推荐的方式,对于ADO或RDS
程序员来说,理想的环境是每个数据源都具有一个OLE DB接口