1)通过Access创建数据库ADO.mdb。
2)利用MFC AppWizard 创建程序随需基本代码,具体内容如下:
启动VC6,单击File菜单的New启动新建对话框,选择MFC AppWizard(exe),并在Project Name中输入ADO_EXAMPLE,单击OK进入下一步,如图1所示。选择基于单文档(Single Document)的应用,单击Finish完成创建。
3)初始化COM库。使用函数来初始化COM库,首先转到ADO_EXAMPLE.cpp文件中的InitInstance()函数,添加如下代码:
BOOL CADO_EXAMPLEApp::InitInstance()
{
AfxEnableControlContainer();
//以上内容为自动生成
AfxOleInit();//添加此句,初始化COM库
//以下内容为自动生成,此处省略
}
4)用预处理指令#import导入ADO类型库。单击FileView窗口,单击HeaderFiles文件夹,双击stdafx.h文件,在其中加入如下代码
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
以上代码不能放在stdafx.h文件的开头和中间,而是应该放在所有include指令后面。否则在编译时会出现以下错误信息。
d:\program files\microsoft visual studio98\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>执行 cl.exe 时出错.
如果出现以下警告信息无需处理,不会造成其他影响。
warning C4146: unary minus operator applied to unsigned type, result still unsigned
加入此段代码后,程序在编译过程中,VC会读出msado15.dll中的类型库信息,自动生成两个该类型的头文件和实现文件msado15.tlh和msado15.tli(在Debug或Release目录下)这两个文件定义了ADO的所有对象和方法,以及一些枚举型常量等。
5)使用Connection对象建立与数据库服务器的连接,为后面进行有关数据库的访问和操作做准备,具体方法如下:
①转到ADO_EXAMPLEView.h文件中,定义一个指向Connection对象的指针_pConnection,具体代码如下:
class CADO_EXAMPLEView : public CView
{
public:
//加入自定义代码
_ConnectionPtr m_pConnection;
......
}
②转到ADO_EXAMPLEView.cpp文件中,首先重载OnInitialUpdate()函数,方法为单击View菜单下的ClassWizard选项,弹出MFC Wizard窗口,将Class name变为ADO_EXAMPLEView,在Message中找到OnInitialUpdate,双击添加到Member Functions中,单击OK就可以重载OnInitialUpdate()函数,如图2所示。接着在函数中添加如下代码以实现数据库的连接。
void CADO_EXAMPLEView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
HRESULT m_pHresult;
try
{
//创建Connection对象
m_pHresult=m_pConnection.CreateInstance("ADODB.Connection");
if (SUCCEEDED(m_pHresult))
{
//连接数据库
m_pHresult=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ADO.mdb","","",adModeUnknown);//Data Source之间有空格
}
}
catch (_com_error e)//捕捉连接异常
{
CString m_pErrormessage;
m_pErrormessage.Format("连接数据库操作失败!\r\n错误信息为:%s",e.ErrorMessage());
AfxMessageBox(m_pErrormessage);//显示错误信息
}
}
在open()函数中,Provider中的Provider=Microsoft.Jet.OLEDB.4.0版本是针对Access2000数据库的,如果要操作Access97数据库,需要改为Provider=Microsoft.Jet.OLEDB.3.51版本。
接着在ADO_EXAMPLEView的类析构函数中关闭Connection对象并将其释放,具体过程转到CADO_EXAMPLEView.cpp文件中,找到~CADO_EXAMPLEView()析构函数,添加如下代码:
CADO_EXAMPLEView::~CADO_EXAMPLEView()
{
m_pConnection->Close();//关闭Connection对象
m_pConnection->Release();//释放Connection对象
}
6)添加菜单项,具体过程,具体过程为单击ResourceView窗口,双击Menu文件夹,双击IDR_MAINFRAME,加入“数据库操作”菜单,并添加子菜单项“添加表、删除表、添加列、删除列”等及其相应的消息处理函数,如图3,4所示。在转到各个消息相应函数中进行修改以完成预定功能。