本篇文章主要记录VS2010环境下,MFC ODBC方式连接SQL Server数据库,通过ODBC数据源连接配置。
1.数据库
首先确保在SQL Server中已经创建好了数据库,如我使用的是chat,其中有两张表t_user,t_message。你可以根据自己的需要写个测试的数据库以及表即可,方便后面的连接操作。
2.创建ODBC数据源
(1).打开控制面板,搜索ODBC,点击管理工具下的设置数据源(ODBC),此时弹出ODBC数据源管理器。
(2).点击添加,创建新的数据源;选择SQL Server,点击完成。
注:(1).名称、描述根据自己需求填写,能辨别连接的哪个数据库即可;
(2).服务器名称为登录SQL Server时,服务器名称。
(3).点击下一步,配置SQLServer DNS;选择‘使用用户输入登录ID和密码的SQL Server验证’,输入登录ID,密码,点击下一步。
(4).选择要连接的数据库,我选择的是chat,点击下一步;此时可以更改语言、日志文件路径等,确认后点击完成。
(5).弹出配置信息,点击‘测试数据源...’,显示测试成功即可。
3.VS2010中创建MFC项目、ODBC类
(1).如我使用的名称是'chat',创建了基于对话框的应用程序,创建完成后设置属性,更改字符集为'使用多字节字符集'。
(2).新建ODBC类,与数据库chat中的表t_user建立映射关系。
1).打开类视图,依次点击'添加-类-MFC ODBC使用者-添加';
2).点击'数据源...',选择机器数据源,选择之前创建好的数据源,如之前的‘SQLServer’,点击确定。
3).输入sqlserver用户名、密码,选择数据库对象,使用表t_user。
注:一个类对应一张表
4).设置类信息,类名、.h名、cpp名,点击确定即会生成此类。
4.MFC中访问数据库,查询数据库。
(1).打开生成的CUser类,注释掉#error安全问题:连接字符串可能包含密码。
(2).在'chat.h'目录中声明CDatabase成员变量,m_database
(3).在对话框中添加按钮‘测试’,双击添加单击响应事件函数OnBnClickedBtnTest(),函数中测试连接数据库获取数据。
CString t_sql;
t_sql.Format("select * from t_user");
CUser *t_user = new CUser(&((CchatApp*)AfxGetApp())->m_database);
if(!t_user -> Open(AFX_DB_USE_DEFAULT_TYPE,t_sql))
{
MessageBox("打开用户表失败!", "提示");
}
if(t_user->GetRecordCount() != 0)
{
//遍历t_user表
do{
MessageBox(t->m_user_name);
t_user->MoveNext();
}while(t_user->IsEOF() != 1);
}