Visual C++ ADO 数据库编程

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所示。在转到各个消息相应函数中进行修改以完成预定功能。

首先实现 添加表的功能,为配合例子,首先创建一个对话框,使用户能自定义表名,具体操作如下:
❶单击ResourceView窗口,右击Dialog文件夹,单击Insert Dialog选项,加入新对话框并将其命名为IDD_TABLENAME。为对话框加入一个编辑框和一个静态文本控件,如图所示。
转到 CADO_EXAMPLEView.cpp文件中,找到OnAddtable()函数,编写如下代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值