• 一篇文章掌握C++操作Access数据库


    一、可视化工具

    我们都知道oracle数据库的可视化工具有:PLSQL Developer、navicat(支持包括oracle的大部分数据库)等,Access数据库的可视化工具是:Microsoft Access,我们安装好微软的office就会自带Microsoft Access,下面提供navicat和Microsoft Office的下载链接,都是破解版的,自带破解软件:

    navicat下载地址:https://pan.baidu.com/s/1zZndNll-dcCr5mLbh_MGYA  提取码:1234

    Microsoft Access下载地址:https://pan.baidu.com/s/1Rfsbs4U3cZqVgxecb6KwYQ   提取码:1234

    为了更好所见即所得的操作Access数据库,我们安装上面的Microsoft Access数据库。

    二、安装Access数据库驱动 

    如果你的程序是32位的,需要安装32位的Access数据库驱动,如果你的程序是64位的,需要安装64位的数据库驱动。如何判断自己的程序是32位还是64位,我们只需要看一下"配置管理器"里面"平台"是Win32还是X64,如下图则程序是32位的:

    下面提供Access驱动的下载地址,包括32位和64位两个版本:

    https://pan.baidu.com/s/1UbO6ABrKSsSJ78i3_xE1aA    提取码:1234

    三、数据库连接字符串

    在使用C++操作数据库 增删改查 之前,首先要连接上数据库,这里我们使用ADO来连接,连接字符串很重要,通过驱动类型来确定连接字符串的格式,我们可以通过:控制面板--管理工具--ODBC数据源(分为32位和64位)来进行查看驱动类型:

    (1)用32位的数据源管理程序查看32位驱动的类型,如下图:

    连接字符串格式为:zzc1.mdb要换成你自己的数据库文件

    _bstr_t StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\zzc1.mdb"

    (2)用64位的数据源管理程序查看64位驱动的类型,如下图:

     连接字符串格式为:zzc1.mdb要换成你自己的数据库文件

    _bstr_t StrConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\zzc1.mdb;Persist Security Info=False;";

    四、使用简单的查询操作进行测试

    1、使用Microsoft Access可视化工具创建一个简单的表:

    2、测试代码:

    1. // access_test.cpp : 定义控制台应用程序的入口点。
    2. //
    3. #include "stdafx.h"
    4. #include <string>
    5. using namespace std;
    6. #import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
    7. using namespace ADOCG;
    8. _ConnectionPtr m_pConnection;
    9. _RecordsetPtr m_pRecordset;
    10. int _tmain(int argc, _TCHAR* argv[])
    11. {
    12. CoInitialize(NULL);
    13. m_pConnection.CreateInstance(__uuidof(Connection));
    14. //_bstr_t StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\zzc1.mdb";
    15. _bstr_t StrConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\zzc1.mdb;Persist Security Info=False;";
    16. try {
    17. m_pConnection->Open(StrConn, "", "", adModeUnknown);
    18. }
    19. catch (_com_error &e)
    20. {
    21. _bstr_t str = e.Source();
    22. str = e.Description();
    23. }
    24. printf("数据库连接成功\r\n");
    25. m_pRecordset.CreateInstance(__uuidof(Recordset));
    26. m_pRecordset->Open("select * from student", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adModeUnknown);
    27. _variant_t var;
    28. int curItem = 0;
    29. int id;
    30. string name;
    31. bool man = false;
    32. while (!m_pRecordset->GetEndOfFile())
    33. {
    34. var = m_pRecordset->GetCollect(_T("name"));
    35. if (var.vt != NULL)
    36. name = _bstr_t(var);
    37. var = m_pRecordset->GetCollect(_T("id"));
    38. if (var.vt != NULL)
    39. id = atoi(_bstr_t(var));
    40. var = m_pRecordset->GetCollect(_T("isman"));
    41. if (var.vt != NULL)
    42. man = var.boolVal;
    43. printf("id=%d,name=%s, man = %d\r\n",id, name.c_str(), man);
    44. m_pRecordset->MoveNext();
    45. curItem++;
    46. }
    47. system("pause");
    48. return 0;
    49. }

     

  • 相关阅读:
    第4季4:图像sensor的驱动源码解析
    深入理解强化学习——马尔可夫决策过程:马尔可夫奖励过程-[计算马尔可夫奖励过程价值的动态规划方法]
    【0-1系列】从0-1快速了解搜索引擎Scope以及如何快速安装使用(下)
    opencv_c++学习(二十五)
    Python大数据之linux学习总结——day07_hive03
    软考高级系统架构设计师系列案例考点专题一:软件架构设计考点梳理及精讲
    VBA技术资料MF66:使用代码插入行或列
    el-table-v2 element plus 表格虚拟滚动渲染选择器
    使用conda install一直卡在solving environment的解决方法
    浅谈redis分布式锁
  • 原文地址:https://blog.csdn.net/u012372584/article/details/133959131