zoukankan      html  css  js  c++  java
  • 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_MACHINESOFTWAREMicrosoftOffice14.0CommonFilesPaths,删除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 ", pRst->GetCollect("mac"));    
        pRst->MoveNext();
    }
    pRst->Close();
    pConn->Close();

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

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

  • 相关阅读:
    zz:android sharedpreferences用法
    Android viewHolder
    Python学习笔记~
    zz:Java多线程编程总结
    zz:Android 2.1 源码结构
    onSaveInstanceState的用法
    zz:如何学习Linux操作系统
    Python学习笔记II
    Python类型转换
    zz:Android应用程序基础
  • 原文地址:https://www.cnblogs.com/ITBread/p/4003630.html
Copyright © 2011-2022 走看看