打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MFC采用ODBC访问SQLite3
userphoto

2021.07.17

关注

操作系统:windows 10企业版 LTSC

编译器:en VS2015 enterprise(这个关系应该不大)

SQLite3版本: V3.17.0

SQLite3封装类库可以用老外写的:  有人做过测试代码见

1、Kompex SQLite Wrapper(目前正在使用的封装库)

2、SQLiteWrapper(这个没去测试,应该也没问题)

A、安装SQLite3的ODBC驱动(32位):DevartODBCSQLite.exe 这个驱动要分,在网上自己找一下。这个驱动好像有时间限制。后来又找了个SQLiteODBC驱动。我当时下载的忘记是哪个网址了。自己去找呀。实在找不到就站内信或者留言邮箱。

B、加载 C:\Program Files (x86)\Common Files\system\ado\msado15.dll 得用32位的,应该64位那个位置也有一个这个dll。64位C:\Program Files\Common Files\system\ado\msado15.dll 

加载过程得在stdafx.h这个文件中 

加入#import "C:\Program Files (x86)\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")这句。或者在CDbMFCGrid这个类的头文件顺加入这句也行。测试了好像没问题。

C、初始化COM:

        CoUninitialize();

HRESULT hr = CoInitializeEx (NULL, COINIT_MULTITHREADED);

//m_bComInitialized = AfxOleInit();

m_bComInitialized = SUCCEEDED (hr);

// If we failed to initialize COM, there isn't much we can do so 

// return FALSE.  This will prevent application from starting.

if (!m_bComInitialized){做一些错误处理工作}

D、绑定网格类:

下载地址 :Binding MFC Grid to database. 下载有两个文件里面有一些错误,修改下就可以了。主要修改头文件的#include路径。因为这个类是按MFC Grid control 2.27作为继承类来做的。到时要用到绑定数据源的问题。cpp文件有几个地主要改一下,把错误的地方全部换成PositionEnum这个类型就可以了。还有对int CDbMFCGrid::Bind(void)函数进行修改。

//hr = m_pConnection->Open((_bstr_t)m_strDataSource,L"", L"", -1);//将这行改成以下的。

hr = m_pConnection->Open((_bstr_t)m_strDataSource, _bstr_t(""), _bstr_t(""), adOpenUnspecified);

E、MFC Grid control 2.27的建立过程这边就不说明了按步骤来就行了。注意在创建对象时采用CDbMFCGrid m_GridLook;   cunstum control还是使用MFCGridCtrl。

F、接下来是查询按钮

temp.Format(_T("SELECT * FROM taskend WHERE MachineNo = '%d' and End_Time >= '%s' and End_Time <= '%s' ORDER BY End_Time ASC;"),SystemData.CMacViewID, m_TimeStart, m_TimeEnd);//查询条件

CString dbPath;

dbPath.Format(_T("DRIVER=SQLite3 ODBC Driver;Database=%sDB\\MacRoll.db;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma = NORMAL; StepAPI = 0;"), SystemData.AppPath);//连接字串

SQLite3 ODBC Driver:红色部分要在控制面板里的管理工具找得到对应的驱动,注意32位/64位之分。

m_GridLook.m_strDataSource = dbPath;

m_GridLook.m_strQuery = temp;

m_GridLook.Bind();

m_GridLook.FillGrid();

//以上为绑定数据

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC知识库文章 - COM 组件设计与应用(五)——用 ATL 写第一个组件
SQLite ODBC Driver
PHP的PDO类教程
pb9 通过ole db连接sqlite3数据库
MFC在线英文教程DLL
oracle 迁移到 sqlite
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服