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,可以看看下面这些参考链接,都是比较实用的案例。