其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。ADO操作语句会在工程可执行程序输出目录中产生两个文件。
分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,ADO操作以避免和其它库中命名相冲突。
其次,在程序初始过程中需要初始化组件。
一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结束时关闭ADO操作的操作,语句如下所示: AfxOleInit();
接着,就可以直接使用ADO操作了。我们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍:#t#
ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句(用法和_CommandPtr中的Execute方法类似)。
——打开一个库连接。先创建一个实例指针,再用Open打开一个库连接,它将返回一个IUnknown的自动化接口指针。代码如下所示:
在工具箱中,新的控件——DataGridView, DataConnector和DataNavigator。利用这些控件,你能在数据绑定控件中提供数据导航(分页)功能。 DbProvidersFactories类这个类能提供当前机器里的现有数据提供者(providers)列表。在写数据库依赖程序时,ADO操作你能利用这个类及其成员为你的数据库查找最适合的数据提供者。
自定义数据提供者(Provider) 通过提供工厂类,现在ADO操作可以扩展支持自定义数据提供者功能。你无需编写一个数据提供者支持代码。你可以用数据提供者基类以及连接字符串帮助你完成这些功能。