MFC 项目里的数据库连接,Ado 确实是个挺顺手的选择。微软自家的ADO
接口,支持 Access、SQL Server 这些常见数据库不说,配合 MFC 用起来也比较贴合习惯。你只需要在stdafx.h
里导入一下msado15.dll
,再用智能指针创建连接,基本上几行代码就能跑通。
导入 ADO 库用#import
指令就行,路径是msado15.dll
,注意一下rename
,不然像EOF
这些标识符会和 MFC 内部冲突:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")
在InitInstance
里用AfxOleInit()
初始化 COM 环境,顺手加个弹窗提示也行,失败就直接return FALSE
。
数据库连接用_ConnectionPtr
,对象名随你起,常见的像m_pConnection
。用CreateInstance
来创建连接对象,之后就是拼连接字符串,Access 和 SQL Server 格式不太一样:
// Access
CString strSQL = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=info.mdb;User ID=admin;Password=;";
// SQL Server
CString strSQL = "Provider=SQLOLEDB;Data Source=myServer;Initial Catalog=myDb;User Id=myUser;Password=myPwd;";
m_pConnection->Open((_bstr_t)strSQL, "", "", adModeUnknown);
连接上之后可以用_CommandPtr
执行 SQL,再用_RecordsetPtr
遍历结果,操作挺灵活的。顺带提醒下,用完记得Close()
释放资源,别让连接一直挂着。
,ADO 在 MFC 里算是比较稳的老搭档了,适合做本地工具、后台管理界面。如果你项目里用 MFC,还不太熟 ADO,可以看看下面这些参考链接,都是比较实用的案例。