CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

连接数据库的具体步骤?

楼主csdnmi(悦纳)2005-05-13 19:15:03 在 VC/MFC / 数据库 提问

我在使用如下代码连接数据库是遇到了一些问题.  
   
   
   
   
  VC++下使用ADO编写数据库程序  
   
  准备:  
  (1)、引入ADO类    
   
  #import   "c:\program   files\common   files\system\ado\msado15.dll"   \  
  no_namespace   \  
  rename   ("EOF",   "adoEOF")  
  (2)、初始化COM  
   
  在MFC中可以用AfxOleInit();非MFC环境中用:    
  CoInitialize(NULL);  
  CoUnInitialize();  
   
  (3)#import   包含后就可以用3个智能指针了:_ConnectionPtr、_RecordsetPtr和_CommandPtr  
   
  1.连接和关闭数据库   (1)连接    
   
  例子:连接Access数据库  
  AfxOleInit();//初始化  
  HRESULT   hr;  
  try  
  {  
  hr   =   m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象  
  if(SUCCEEDED(hr))  
  {  
  m_pConnection->ConnectionTimeout   =   0;  
  hr   =   m_pConnection->Open(   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=db.mdb",   "",   "",   adModeUnknown);  
  //m_pConnection->PutDefaultDatabase   ((_bstr_t)"DB");//设置默认数据库  
   
  m_pCommand.CreateInstance(__uuidof(Command));  
  m_pCommand->CommandTimeout   =   5;  
  m_pCommand->ActiveConnection   =   m_pConnection;  
  }  
  }  
  catch(_com_error   e)///捕捉异常  
  {  
  CString   errormessage;  
  errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());  
  AfxMessageBox(errormessage);///显示错误信息  
  }  
   
  我用这一段代码连接数据库是怎么连接不上,现在有以下问题需要提问:  
  1   要是想使用这三个指针(_ConnectionPtr、_RecordsetPtr和_CommandPtr),是不是需要在哪个文件的头部包含上一个头文件?仅仅引入#import   "c:\program   files\common   files\system\ado\msado15.dll"   \  
  no_namespace   \是不是不够?  
  2   AfxOleInit()这个函数放在哪里?是应该放到CMainFrame0中吗?  
   
  3   在使用m_pConnection之前是不是该声明一下它?是这样声吗:_ConnectionPtr   m_pConnection;  
  4   从哪里能看出这段程序是在连接access数据库,如果我要是想连接sql_server数据库呢,该怎么改?  
  5   ADODB是什么?  
  6_com_error可以直接使用吗?是不是该加上定义它的头文件?  
   
   
  能不能提供一个步骤更详细一些的完整的代码,最好说明那些代码该添在哪个文件里?急需使用!  
   
  问题点数:20、回复次数:3Top

1 楼csdnmi(悦纳)回复于 2005-05-14 09:44:56 得分 0

怎么也没人回答?急等?我周一就要给老师看了?Top

2 楼love_xf()回复于 2005-05-14 10:43:57 得分 10

加入这几个头文件  
  #include   <adoid.h>  
  #include   <adoint.h>  
  #include   "icrsint.h"  
   
  _ConnectionPtr   pConn   =   NULL;  
  try  
  {  
      pConn.CreateInstance(_unidof(Connection));     //创建Connection对象实例  
      _bstr_t   conn="DSN=YouDsn;UID=XX,PWD=XXX";//通过ODBC的DSN默置之后就可以访问到你的数据源.  
      //当然也可以通过驱动等进行访问,查找一个ado访问数据库的连接字串有很多,这儿不列举了  
    //如果Access数据库,那就不用ado访问了,可以用DAO访问,或odbc数据源的方法访问,很简单.  
   
      pConn->Open(conn,"","",-1);  
       
      pConn->Close();  
  }  
  catch(_com_error   &e)  
  {  
  AfxMessageBox(e.ErrorMessage());  
  }  
   
  这样就可以打开数据库.  
   
  Top

3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-05-14 18:10:12 得分 10

1,引入就好了  
  2,在AppInstance中初始化  
  3,对  
  4,hr   =   m_pConnection->Open(   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=db.mdb",   "",   "",   adModeUnknown);这里修改  
  5,你没有用  
  6,可以Top

相关问题

  • .net与sql 2000数据库连接的具体方法
  • 急需EJB连接数据库成功的完整、详细配置步骤。
  • 用sql server专用接口来进行数据库连接的步骤
  • 求C++ Builder 与SQL Server数据库的ADO 连接的方法步骤!
  • 数据库连接
  • 连接数据库!!!
  • 连接数据库!!!
  • 数据库连接!
  • 数据库连接
  • 数据库连接

关键词

  • 数据库
  • 连接
  • ado
  • hr
  • db
  • pconnection
  • pconn
  • 初始化
  • 访问
  • pcommand

得分解答快速导航

  • 帖主:csdnmi
  • love_xf
  • oyljerry

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo