win7 64 VC++ ado方式连接access 连接字符串

运行环境:win7 64

      vc++6.0

      office 2007  32位(access 2007)

我用的是ado方式连接access数据库,(现在的Win7系统中安装的一般都是32位的Office,因为微软推荐使用32位的Office,兼容性更强,稳定性更好。access文件是.mdb(2003格式,会提示没有jet访问组件) .accdb(2007格式)),因此需要安装AccessDatabaseEngine_X64.exe驱动,安装时会提示先卸载office再安装64位office,然后再安装。可以使用"/passive"命令安装;

操作如下:

  1. 打开命令行 输入AccessDatabaseEngine_x64.exe /passive 安装完成。
  2. 安装完成后,查看注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths,删除mso.dll(一定做这一步,否则会出现Office Config配置问题,已启动Office就会重新安装Office

以上准备工作做完,可以开始编码了以下列出关键代码:

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;";

//特别注意这里的连接字符串或者用以下连接字符串(很容易出错,这2个都是可以的,我这个上面浪费很多时间

/*

_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;";

    //_bstr_t strConnect="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\mac.mdb;uid=;pwd=;";   

*/
pConn->Open(strConnect,"","", adModeUnknown);
pRst=pConn->Execute("select * from macAddress",NULL,adCmdText);

while(!pRst->adoEOF)
{
    //((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("mac"));

printf( "%s \n", pRst->GetCollect("mac"));    
    pRst->MoveNext();
}
pRst->Close();
pConn->Close();

pRst.Release();
pConn.Release();
CoUninitialize();

提示[Microsoft ][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序,很有可能就是驱动已经安装好,但是连接字符串是错误的(如access文件路径)。

转载于:https://www.cnblogs.com/ITBread/p/4003630.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值