DVD出租系统【3】MFC界面连接数据库
程序员文章站
2022-05-08 11:06:26
...
DVD出租系统【3】界面连接数据库
数据库是sql server 2008:
1、初始化COM库:
ADO是基于COM技术的,所以,在应用程序调用ADO前,必须初始化COM库环境。
ADO使用结束后,还需要关闭库,释放初始化加载的动态库,MFC程序中,一般在 CXXXAPP 的 InitInstance 的
函数中调用 COM 库的初始化函数 CoInitialize(NULL); 在 ExitInstance 的函数中调用卸载 COM 库的函数:CoUninitialize();
2、、引入 ADO 动态链接库:
在使用 vc++ 的 MFC 编程开发时,MFC 并没有提供对 ADO 封装类的支持,能够支持 ADO 编程的是 ADO 的 COM动态库 msado*.dll
一般在系统盘的:\Program Files\Common Files\System\ado 目录下,根据操作系统版本的不同,该文件可能是:msado15.dll,
* 代表 ADO 库的版本,在 stdafx.h 头文件中添加如下代码:
#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEof")
3、在头文件中添加代码:
_ConnectionPtr m_pConnection;
BOOL connectDB();
void CloseDB();
virtual void OnCancel();
4、接下来增加数据库连接代码,数据库关闭代码:(onCancel是函数重载出来的)
BOOL CDVDRentDlg::connectDB()
{
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance(__uuidof(Connection));
if (SUCCEEDED(hr)) {
//_bstr_t connectStr = _T("Provider=SQLNCLI;Server=192.168.0.100;Database=DVDRentDB;Uid=cctry;Pwd=www.cctry.com");
_bstr_t connectStr = _T("Provider=sqloledb;Data Source=192.168.1.23;Initial Catalog=DVDRentDB;User Id=sa;Password=123456");
m_pConnection->ConnectionTimeout = 20;
hr = m_pConnection->Open(connectStr, _T(""), _T(""), adConnectUnspecified);
if (FAILED(hr)) {
MessageBox(_T("打开与数据库的连接失败."));
return FALSE;
}
}
else {
MessageBox(_T("实例化 Connection 对象失败."));
return FALSE;
}
}
catch (_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
MessageBox(bstrDescription, bstrSource);
return FALSE;
}
return TRUE;
}
void CDVDRentDlg::CloseDB()
{
if (m_pConnection && m_pConnection->State == adStateOpen) {
m_pConnection->Close();
}
}
void CDVDRentDlg::OnCancel()
{
// TODO: 在此添加专用代码和/或调用基类
CloseDB();
CDialogEx::OnCancel();
}
5、运行效果图如下:
本节工程地址:
链接:https://pan.baidu.com/s/1PYaRk-vXiB2hBhTsj4f9CQ
提取码:ncqx
上一篇: Java打造CD、DVD数据库
推荐阅读