Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8700373
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: 数据库开发技术

2006-07-19 13:06:07

这些天一直在学习ADO 连接,感觉比较复杂,所以一边学习,一边使用,一边做了一些笔记,下面的一些东西就是我总结的一些关于ADO数据库连接方面的东西,因为是笔记,所以不一定很有序,贴出来的意思一方面是可以给大家一个参考,一边也有希望大家一起来完善的意思,其中错误和不足之处当然希望大家可以及时地通知我,在贴上来的时候,我有一个想法,因为我在使用的过程中,总是会遇上一些莫明其妙的错误,所以我想大家有可能也会遇上,于是,我给出了一个错误总结,当然这里就需要大家一起来完善了,如果大家有什么心得和见解,希望在评论中留言,我会及时地接受大家的意见并把他们加进来(当然是在得到您的允许的情况下)

  1、导入库文件

  使用ADO前必须在工程的stdafx.h文件最后用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下:
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")

  ADO类的定义是作为一种资源存储在ADO DLL(msado15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C++使用的COM vtable接口。当使用#import指令时,在运行时Visual C++需要从ADO DLL中读取这个类型库,并以此创建一组C++头文件。这些头文件具有.tli 和.tlh扩展名,读者可以在项目的目录下找到这两个文件。在C++程序代码中调用的ADO类要在这些文件中定义。

 程序的第三行指示ADO对象不使用名称空间。在有些应用程序中,由于应用程序中的对象与ADO中的对象之间可能会出现命名冲突,所以有必要使用名称空间。如果要使用名称空间,则可把第三行程序修改为: rename_namespace("AdoNS")。第四行代码将ADO中的EOF(文件结束)更名为adoEOF,以避免与定义了自己的EOF的其他库冲突。

  2、初始化COM环境
  (1)::CoInitialize(NULL); //初始化OLE/COM库环境
::  CoUninitialize();//既然初始化了环境,当然就有必要释放他了
  (2)也可以调用MFC全局函数
  AfxOleInit();

  3、三大对象的定义和创建实例

  (1) _ConnectionPtr pConnection("ADODB.Connection");
  _RecordsetPtr pRecordset("ADODB.Recordset");
  _CommandPtr pCommand("ADODN.Command");

  (2) _ConnectionPtr pConnection;
  _RecordsetPtr pRecordset;
  _CommandPtr pCommand;
 
  pConnection.CreateInstance(__uuidof(Connection));
  pRecordset.CreateInstance(__uuidof(Recordset));
  pCommand.CreateInstance(__uuidof(Command));

  (3) _ConnectionPtr pConnection;
  _RecordsetPtr pRecordset;
  _CommandPtr pCommand;
 
  pConnection.CreateInstance("ADODB.Connection");
  pRecordset.CreateInstance("ADODB.Recordset");
 pCommand.CreateInstance("ADODB.Command");
阅读(814) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~