VC++ ADO 数据库连接-实例分析

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

  1、导入库文件

  使用ADO前必须在工程的stdafx.h文件最后用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下:

  #import "C:Program Filescommon filessystemadomsado15.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");

  4、打开一个连接

  pConnection->Open(ConnectionString,"","",adModeUnknown);///连接数据库

  上面的连接字符串ConnectionString根据不同的数据源,分别对应不同的写法

  1)访问Access 2000

  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassWord"

  2)访问ODBC数据

  " Provider=MADASQL;DSN=dsnName;UID=userName;PWD=userPassword;"

  3)访问Oracle数据库

  “Provider=MSDAORA;Data Sourse=serverName;User ID=userName;Password=userPassword;"

  3)访问MS SQL数据库

  "Provider=SQLOLEDB,Data Source=serverName;Initial Catalog=databaseName;User ID=userName;Password=userPassword;"

  4、执行SQL命令

  SQL命令比较多,但是不去考虑细节,这里只说出通用的方法

  CString strSQL;//定义SQL命令串,用来保存SQL语句

  strSQL.Format("SQL statement");

  然后在每个要用到SQL命令串的方法中,使用strSQL.AllocSysString()的方法进行类型转换

  5、com的专用数据类型

  variant ,bstr ,SafeArray

  variant变量的范围包括很多,使用_variant_t 进行管理

  bstr是一种字符串变量,使用_bstr_t进行管理

  6、关闭连接

  if(m_pConnection->State)//不能多次关闭,否则会出现错误

  m_pConnection->Close();

  7、结构化异常处理

  ADO封装了COM接口,所以需要进行错误处理

  如下例:

  HRESULT hr;

  try

  {

  hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象

  if(SUCCEEDED(hr))

  beijingkaifapiao.dwcxa.com;

  beijingdaikaifapiao.dwcxa.com;

  shanghaikaifapiao.dwcxa.com;

  shanghaidaikaifapiao.dwcxa.com;

  guangzhoukaifapiao.dwcxa.com;

  shenzhenfapiao.dwcxa.com;

  shenzhenkaifapiao.dwcxa.com;

  jinanfapiao.dwcxa.com;

  jinankaifapiao.dwcxa.com;

  jinandaikaifapiao.dwcxa.com;

  qingdaofapiao.dwcxa.com;

  qingdaokaifapiao.dwcxa.com;

  qingdaodaikaifapiao.dwcxa.com;

  nanjingfapiao.dwcxa.com;

  nanjingdaikaifapiao.dwcxa.com;

  wuxifapiao.dwcxa.com;

  wuxikaifapiao.dwcxa.com;

  wuxidaikaifapiao.dwcxa.com;

  suzhoufapiao.dwcxa.com;

  suzhoukaifapiao.dwcxa.com;

  suzhoudaikaifapiao.dwcxa.com;

  zhengzhoufapiao.dwcxa.com;

  zhengzhoukaifapiao.dwcxa.com;

  zhengzhoudaikaifapiao.dwcxa.com;

  shijiazhuangfapiao.dwcxa.com;

  shijiazhuangkaifapiao.dwcxa.com;

  shijiazhuangdaikaifapiao.dwcxa.com;

  hangzhoufapiao.dwcxa.com;

  hangzhoudaikaifapiao.dwcxa.com;

  ningbofapiao.dwcxa.com;

  ningbokaifapiao.dwcxa.com;

  ningbodaikaifapiao.dwcxa.com;

  xianfapiao.dwcxa.com;

  xiankaifapiao.dwcxa.com;

  xiandaikaifapiao.dwcxa.com;

  changshafapiao.dwcxa.com;

  changshakaifapiao.dwcxa.com;

  changshadaikaifapiao.dwcxa.com;

  zhongqingkaifapiao.dwcxa.com;

  zhongqingdaikaifapiao.dwcxa.com;

  fuzhoufapiao.dwcxa.com;

  fuzhoukaifapiao.dwcxa.com;

  fuzhoudaikaifapiao.dwcxa.com;

  xiamenfapiao.dwcxa.com;

  xiamenkaifapiao.dwcxa.com;

  xiamendaikaifapiao.dwcxa.com;

  tianjinfapiao.dwcxa.com;

  tianjinkaifapiao.dwcxa.com;

  tianjindaikaifapiao.dwcxa.com;

  kunmingfapiao.dwcxa.com;

  kunmingkaifapiao.dwcxa.com;

  kunmingdaikaifapiao.dwcxa.com;

  chengdufapiao.dwcxa.com;

  chengdukaifapiao.dwcxa.com;

  chengdudaikaifapiao.dwcxa.com;

  hefeifapiao.dwcxa.com;

  hefeikaifapiao.dwcxa.com;

  hefeidaikaifapiao.dwcxa.com;

  wuhanfapiao.dwcxa.com;

  wuhankaifapiao.dwcxa.com;

  wuhandaikaifapiao.dwcxa.com;

  dalianfapiao.dwcxa.com;

  daliandaikaifapiao.dwcxa.com;

  shenyangfapiao.dwcxa.com;

  shenyangkaifapiao.dwcxa.com;

  shenyangdaikaifapiao.dwcxa.com;

  haerbinfapiao.dwcxa.com;

  haerbinkaifapiao.dwcxa.com;

  haerbindaikaifapiao.dwcxa.com;

  changchunfapiao.dwcxa.com;

  changchundaikaifapiao.dwcxa.com;

  taiyuanfapiao.dwcxa.com;

  taiyuankaifapiao.dwcxa.com;

  taiyuandaikaifapiao.dwcxa.com;

  lanzhoufapiao.dwcxa.com;

  lanzhoukaifapiao.dwcxa.com;

  lanzhoudaikaifapiao.dwcxa.com;

  jilinfapiao.dwcxa.com;

  jilinkaifapiao.dwcxa.com;

  jilindaikaifapiao.dwcxa.com;

  nanchangfapiao.dwcxa.com;

  nanchangkaifapiao.dwcxa.com;

  nanchangdaikaifapiao.dwcxa.com;

  guiyangfapiao.dwcxa.com;

  guiyangkaifapiao.dwcxa.com;

  guiyangdaikaifapiao.dwcxa.com;

  nanningfapiao.dwcxa.com;

  nanningkaifapiao.dwcxa.com;

  nanningdaikaifapiao.dwcxa.com;

  haikoufapiao.dwcxa.com;

  haikoukaifapiao.dwcxa.com;

  haikoudaikaifapiao.dwcxa.com;

  jinhuadaikaifapiao.dwcxa.com;

  wenzhoudaikaifapiao.dwcxa.com;

  yangzhoudaikaifapiao.dwcxa.com;

  wulumuqidaikaifapiao.dwcxa.com;

  qinhuangdaodaikaifapiao.dwcxa.com;

  cangzhoudaikaifapiao.dwcxa.com;

  xiningdaikaifapiao.dwcxa.com;

  huhehaotekaifapiao.dwcxa.com;

  cangzhoudaikaifapiao.dwcxa.com;

  cangzhoufapiao.dwcxa.com;

  cangzhoukaifapiao.dwcxa.com;

  zhangzhoudaikaifapiao.dwcxa.com;

  zhangzhoufapiao.dwcxa.com;

  zhangzhoukaifapiao.dwcxa.com;

  zhenjiangdaikaifapiao.dwcxa.com;

  zhenjiangfapiao.dwcxa.com;

  zhenjiangkaifapiao.dwcxa.com;

  zhongshandaikaifapiao.dwcxa.com;

  zhongshanfapiao.dwcxa.com;

  zhongshankaifapiao.dwcxa.com;

  zhuhaidaikaifapiao.dwcxa.com;

  zhuhaifapiao.dwcxa.com;

  zhuhaikaifapiao.dwcxa.com;

  huhehaotefapiao.dwcxa.com;

  huhehaotekaifapiao.dwcxa.com;

  foshandaikaifapiao.dwcxa.com;

  foshanfapiao.dwcxa.com;

  foshankaifapiao.dwcxa.com;

  huizhoudaikaifapiao.dwcxa.com;

  huizhoufapiao.dwcxa.com;

  huizhoukaifapiao.dwcxa.com;

  jinhuadaikaifapiao.dwcxa.com;

  jinhuafapiao.dwcxa.com;

  jinhuakaifapiao.dwcxa.com;

  taizhoudaikaifapiao.dwcxa.com;

  taizhoufapiao.dwcxa.com;

  taizhoukaifapiao.dwcxa.com;

  luoyangdaikaifapiao.dwcxa.com;

  luoyangfapiao.dwcxa.com;

  luoyangkaifapiao.dwcxa.com;

  qinhuangdaodaikaifapiao.dwcxa.com;

  qinhuangdaofapiao.dwcxa.com;

  qinhuangdaokaifapiao.dwcxa.com;

  quanzhoudaikaifapiao.dwcxa.com;

  quanzhoufapiao.dwcxa.com;

  quanzhoukaifapiao.dwcxa.com;

  tangshandaikaifapiao.dwcxa.com;

  tangshanfapiao.dwcxa.com;

  tangshankaifapiao.dwcxa.com;

  wenzhoudaikaifapiao.dwcxa.com;

  wenzhoufapiao.dwcxa.com;

  wenzhoukaifapiao.dwcxa.com;

  xuzhoudaikaifapiao.dwcxa.com;

  xuzhoufapiao.dwcxa.com;

  xuzhoukaifapiao.dwcxa.com;

  shantoudaikaifapiao.dwcxa.com;

  shantoufapiao.dwcxa.com;

  shantoukaifapiao.dwcxa.com;

  yantaidaikaifapiao.dwcxa.com;

  yantaifapiao.dwcxa.com;

  yantaikaifapiao.dwcxa.com;

  yanchengdaikaifapiao.dwcxa.com;

  yanchengfapiao.dwcxa.com;

  yanchengkaifapiao.dwcxa.com;

  yangzhoudaikaifapiao.dwcxa.com;

  yangzhoufapiao.dwcxa.com;

  yangzhoukaifapiao.dwcxa.com;

  wulumuqidaikaifapiao.dwcxa.com;

  wulumuqifapiao.dwcxa.com;

  wulumuqikaifapiao.dwcxa.com;

  chengdedaikaifapiao.dwcxa.com;

  chengdefapiao.dwcxa.com;

  chengdekaifapiao.dwcxa.com;

  dandongdaikaifapiao.dwcxa.com;

  dandongfapiao.dwcxa.com;

  dandongkaifapiao.dwcxa.com;

  dongݸfapiao.dwcxa.com;

  dongݸkaifapiao.dwcxa.com;

  dongyingdaikaifapiao.dwcxa.com;

  dongyingfapiao.dwcxa.com;

  dongyingkaifapiao.dwcxa.com;

  ganzhoudaikaifapiao.dwcxa.com;

  ganzhoufapiao.dwcxa.com;

  ganzhoukaifapiao.dwcxa.com;

  huludaodaikaifapiao.dwcxa.com;

  huludaofapiao.dwcxa.com;

  huludaokaifapiao.dwcxa.com;

  jixidaikaifapiao.dwcxa.com;

  jixifapiao.dwcxa.com;

  jixikaifapiao.dwcxa.com;

  lishuidaikaifapiao.dwcxa.com;

  lishuifapiao.dwcxa.com;

  lishuikaifapiao.dwcxa.com;

  liuzhoudaikaifapiao.dwcxa.com;

  liuzhoufapiao.dwcxa.com;

  liuzhoukaifapiao.dwcxa.com;

  loudidaikaifapiao.dwcxa.com;

  loudifapiao.dwcxa.com;

  loudikaifapiao.dwcxa.com;

  mianyangdaikaifapiao.dwcxa.com;

  mianyangfapiao.dwcxa.com;

  mianyangkaifapiao.dwcxa.com;

  nantongdaikaifapiao.dwcxa.com;

  nantongfapiao.dwcxa.com;

  nantongkaifapiao.dwcxa.com;

  panzhihuadaikaifapiao.dwcxa.com;

  panzhihuafapiao.dwcxa.com;

  panzhihuakaifapiao.dwcxa.com;

  pingdingshandaikaifapiao.dwcxa.com;

  pingdingshanfapiao.dwcxa.com;

  pingdingshankaifapiao.dwcxa.com;

  rizhaodaikaifapiao.dwcxa.com;

  rizhaofapiao.dwcxa.com;

  rizhaokaifapiao.dwcxa.com;

  tianshuidaikaifapiao.dwcxa.com;

  tianshuifapiao.dwcxa.com;

  tianshuikaifapiao.dwcxa.com;

  weihaidaikaifapiao.dwcxa.com;

  weihaifapiao.dwcxa.com;

  weihaikaifapiao.dwcxa.com;

  xiningdaikaifapiao.dwcxa.com;

  xiningfapiao.dwcxa.com;

  xiningkaifapiao.dwcxa.com;

  xianyangdaikaifapiao.dwcxa.com;

  xianyangfapiao.dwcxa.com;

  xianyangkaifapiao.dwcxa.com;

  yinchuandaikaifapiao.dwcxa.com;

  yinchuanfapiao.dwcxa.com;

  yinchuankaifapiao.dwcxa.com;

  yingkoudaikaifapiao.dwcxa.com;

  yingkoufapiao.dwcxa.com;

  yingkoukaifapiao.dwcxa.com;

  zibodaikaifapiao.dwcxa.com;

  zibofapiao.dwcxa.com;

  zibokaifapiao.dwcxa.com;

  zigongdaikaifapiao.dwcxa.com;

  zigongfapiao.dwcxa.com;

  zigongkaifapiao.dwcxa.com;

  beijingzhusufapiao.dwcxa.com;

  beijingcanyinfapiao.dwcxa.com;

  jinancanyinfapiao.dwcxa.com;

  jinanzhusufapiao.dwcxa.com;

  hefeizhusufapiao.dwcxa.com;

  hefeicanyinfapiao.dwcxa.com;

  suzhouzhusufapiao.dwcxa.com;

  suzhoucanyinfapiao.dwcxa.com;

  ningbocanyinfapiao.dwcxa.com;

  ningbozhusufapiao.dwcxa.com;

  wuxicanyinfapiao.dwcxa.com;

  wuxizhusufapiao.dwcxa.com;

  nanjingcanyinfapiao.dwcxa.com;

  nanjingzhusufapiao.dwcxa.com;

  changshazhusufapiao.dwcxa.com;

  changshacanyinfapiao.dwcxa.com;

  qingdaocanyinfapiao.dwcxa.com;

  qingdaozhusufapiao.dwcxa.com;

  zhongqingzhusufapiao.dwcxa.com;

  zhongqingcanyinfapiao.dwcxa.com;

  chengduzhusufapiao.dwcxa.com;

  chengducanyinfapiao.dwcxa.com;

  shanghaizhusufapiao.dwcxa.com;

  shanghaidaikaicanyinfapiao.dwcxa.com;

  haerbincanyinfapiao.dwcxa.com;

  haerbinzhusufapiao.dwcxa.com;

  changchunzhusufapiao.dwcxa.com;

  changchuncanyinfapiao.dwcxa.com;

  shenyangzhusufapiao.dwcxa.com;

  shenyangcanyinfapiao.dwcxa.com;

  zhengzhouzhusufapiao.dwcxa.com;

  zhengzhoucanyinfapiao.dwcxa.com;

  nanjingzhusufapiao.dwcxa.com;

  nanjingcanyinfapiao.dwcxa.com;

  hangzhouzhusufapiao.dwcxa.com;

  hangzhoucanyinfapiao.dwcxa.com;

  kunmingzhusufapiao.dwcxa.com;

  kunmingcanyinfapiao.dwcxa.com;

  dalianzhusufapiao.dwcxa.com;

  daliancanyinfapiao.dwcxa.com;

  wuhanzhusufapiao.dwcxa.com;

  wuhancanyinfapiao.dwcxa.com;

  fuzhoucanyinfapiao.dwcxa.com;

  fuzhouzhusufapiao.dwcxa.com;

  guangzhoucanyinfapiao.dwcxa.com;

  guangzhouzhusufapiao.dwcxa.com;

  shijiazhuangcanyinfapiao.dwcxa.com;

  shijiazhuangzhusufapiao.dwcxa.com;

  xiancanyinfapiao.dwcxa.com;

  xianzhusufapiao.dwcxa.com;

  shenzhencanyinfapiao.dwcxa.com;

  shenzhenzhusufapiao.dwcxa.com;

  taiyuanzhusufapiao.dwcxa.com;

  taiyuancanyinfapiao.dwcxa.com;

  nanchangzhusufapiao.dwcxa.com;

  nanchangcanyinfapiao.dwcxa.com;

  guiyangzhusufapiao.dwcxa.com;

  guiyangcanyinfapiao.dwcxa.com;

  guangzhoudingefapiao.dwcxa.com;

  shenzhendingefapiao.dwcxa.com;

  zhongqingdingefapiao.dwcxa.com;

  nanjingdingefapiao.dwcxa.com;

  qingdaodingefapiao.dwcxa.com;

  shanghaidingefapiao.dwcxa.com;

  jinandingefapiao.dwcxa.com;

  shenyangdingefapiao.dwcxa.com;

  haerbindingefapiao.dwcxa.com;

  chengdudingefapiao.dwcxa.com;

  nanningdingefapiao.dwcxa.com;

  suzhoudingefapiao.dwcxa.com;

  changchundingefapiao.dwcxa.com;

  beijingdingefapiao.dwcxa.com;

  hangzhoudingefapiao.dwcxa.com;

  ningbodingefapiao.dwcxa.com;

  xiandingefapiao.dwcxa.com;

  shijiazhuangdingefapiao.dwcxa.com;

  zhengzhoudingefapiao.dwcxa.com;

  wuhandingefapiao.dwcxa.com;

  tianjindingefapiao.dwcxa.com;

  taiyuandingefapiao.dwcxa.com;

  haikoudingefapiao.dwcxa.com;

  nanjingdingefapiao.dwcxa.com;

  wuxidingefapiao.dwcxa.com;

  nanchangdingefapiao.dwcxa.com;

  kunmingdingefapiao.dwcxa.com;

  guiyangdingefapiao.dwcxa.com;

  lanzhoudingefapiao.dwcxa.com;

  xiningdingefapiao.dwcxa.com;

  hefeidingefapiao.dwcxa.com;

  fuzhoudingefapiao.dwcxa.com;

  xiamendingefapiao.dwcxa.com;

  shanghaishangpinfapiao.dwcxa.com;

  shanghaihuiwufapiao.dwcxa.com;

  shanghaiyunshufapiao.dwcxa.com;

  shanghaijianzhufapiao.dwcxa.com;

  shanghaiguanggaofapiao.dwcxa.com;

  beijingjianzhufapiao.dwcxa.com;

  beijingshangpinfapiao.dwcxa.com;

  guangzhoujianzhufapiao.dwcxa.com;

  guangzhoushangpinfapiao.dwcxa.com;

  beijingzengzhishuifapiao.dwcxa.com;

  beijingkaizengzhishuifapiao.dwcxa.com;

  shanghaizengzhishuifapiao.dwcxa.com;

  shanghaikaizengzhishuifapiao.dwcxa.com;

  shanghaidaikaizengzhishuifapiao.dwcxa.com;

  guangzhouzengzhishuifapiao.dwcxa.com;

  guangzhoukaizengzhishuifapiao.dwcxa.com;

  guangzhoudaikaizengzhishuifapiao.dwcxa.com;

  shenzhenzengzhishuifapiao.dwcxa.com;

  shenzhenkaizengzhishuifapiao.dwcxa.com;

  shenzhendaikaizengzhishuifapiao.dwcxa.com;

  wuhanzengzhishuifapiao.dwcxa.com;

  wuhankaizengzhishuifapiao.dwcxa.com;

  wuhandaikaizengzhishuifapiao.dwcxa.com;

  jinankaizengzhishuifapiao.dwcxa.com;

  jinandaikaizengzhishuifapiao.dwcxa.com;

  qingdaozengzhishuifapiao.dwcxa.com;

  qingdaokaizengzhishuifapiao.dwcxa.com;

  qingdaodaikaizengzhishuifapiao.dwcxa.com;

  nanjingzengzhishuifapiao.dwcxa.com;

  nanjingkaizengzhishuifapiao.dwcxa.com;

  nanjingdaikaizengzhishuifapiao.dwcxa.com;

  wuxizengzhishuifapiao.dwcxa.com;

  wuxikaizengzhishuifapiao.dwcxa.com;

  wuxidaikaizengzhishuifapiao.dwcxa.com;

  suzhouzengzhishuifapiao.dwcxa.com;

  suzhoukaizengzhishuifapiao.dwcxa.com;

  suzhoudaikaizengzhishuifapiao.dwcxa.com;

  shenyangzengzhishuifapiao.dwcxa.com;

  shenyangkaizengzhishuifapiao.dwcxa.com;

  shenyangdaikaizengzhishuifapiao.dwcxa.com;

  {

  hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库

  ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改 为:Provider=Microsoft.Jet.OLEDB.3.51; }

  }

  catch(_com_error e)///捕捉异常

  {

  CString errormessage;

  errormessage.Format("连接数据库失败!

  错误信息:%s",e.ErrorMessage());

  AfxMessageBox(errormessage);///显示错误信息

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值