您的位置:首页 > 数据库

MFC和ACCESS数据库的连接(C_Answers团队开发学生信息管理系统所用)

2012-03-28 15:30 555 查看
1.通常在应用类(APP类)中进行数据库的连接。(不在dialog类中,,因为要在出现对话框前已经建立好数据库的连接)

第一步:数据库操作准备

1)导入ADO动态链接库。。在stdafx.h中。

在工程的stdafx.h中加入如下语句:

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

这一句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会我们声称msado15.tlh和msado15.tl两个C++头文件来定义ADO库。即加载ADO动态连接库。

其中no_namespace表明不使用命名空间,rename("EOF","adoEOF")表明把ADO中用到的EOF改为adoEOF,防止命名冲突。

注意:改代码需要在一行中完成,如果写成两行或者多行,末行要加上"\"符号,表示把这几行看成一行。

2)初始化OLE/COM环境,在应用类(app)的lnitlnstance成员函数中。

方法:在应用类的lnitlnstance成员函数中,添加AfxOlenit函数(在退出应用时,该函数也将负责COM资源的释放)

BOOL CMy13App::InitInstance()

{

AfxEnableControlContainer();//添加的初始化OLE/COM环境代码

if(!AfxOleInit()){

AfxMessageBox("初始化OLE DLL失败!");

return FALSE;

}

第二步:连接数据库

1)先在APP头文件中声明一个connection指针。

方法为:双击APP类----即进入头文件,,在头文件中声明成员变量。或者右键鼠标---添加成员变量。。

如下

class CMy13App : public CWinApp

{

public:

_ConnectionPtr m_pcon2;

CMy13App();

_ConnectionPtr m_pcon;//声明一个连接指针



2)在lnitlnstance中创建Connection对象(实例化)

打开lnitlnstance函数

BOOL CMy13App::InitInstance()

{

AfxEnableControlContainer();//第一步时自己写的用于初始化OLE/COM的代码

m_pcon.CreateInstance(_uuidof(Connection ));//创建Connection对象---自己写的

3)设置连接字符串,,以便制定需要的连接

BOOL CMy13App::InitInstance()

{

AfxEnableControlContainer();//初始化OLE/COM

m_pcon.CreateInstance(_uuidof(Connection )); //创建Connection对象

try//负责抛出

{

CString SQL="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=SIMS.accdb;Jet OLEDB:Database Password=606";;//设置连接字符串

m_pcon->Open((_bstr_t)SQL,"","",adModeUnknown) //使用m_pcon的open方法实现对数据库的连接。

}

catch (_com_error e)//捕获异常

{

AfxMessageBox("数据库连接失败!");

return FALSE;

}

在ADO操作中建议使用try....Catch(_com_error e)来捕捉错误信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: