一、新建工程access数据库,基本对话框。
二、添加类
Class Type:Generic Class
Name: CADOConn
三、在ADOConn.h中加
。。。。。。。。。。。。。。。
#define AFX_ADOCONN_H__15D0A1C8_EEF1_419C_A48B_A08BF8F60FD6__INCLUDED_
#import "c:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \
rename("EOF","adoEOF")rename("BOF","adoBOF")
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CADOConn
{
public:
CADOConn();
virtual ~CADOConn();
//添加一个指向Connection对象的指针
_ConnectionPtr m_pConnection;
//添加一个指向Recordset对象的指针
_RecordsetPtr m_pRecordset;
};
#endif // !defined(AFX_ADOCONN_H__15D0A1C8_EEF1_419C_A48B_A08BF8F60FD6__INCLUDED_)
四、在类CADOConn中加成员函数
Function Type:void
Function Declaration:OnInitADOConn()
Access:Public
五、加入代码
void CADOConn::OnInitADOConn()
{
//初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
//创建connection对象
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=database.mdb;";
//SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
//捕捉异常
catch(_com_error e)
{
//显示错误信息
AfxMessageBox(e.Description());
}
}
六、类CADOConn中加成员函数
Function Type:void
Function Declaration:ExitConnect()
Access:Public
七、加入代码
void CADOConn::ExitConnect()
{
//关闭记录集和连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
//释放环境
::CoUninitialize();
}
八、加成员函数同时加入代码
Function Type:_RecordsetPtr&
Function Declaration:GetRecordSet(_bstr_t bstrSQL)
Access:Public
_RecordsetPtr& CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_pRecordset;
}
九、加入一个二个编辑框ID:IDC_EDIT1和ID:IDC_EDIT2
十、access数据库Dlg.cpp加入#include "ADOConn.h"
十一、在OnInitDialog()中加入代码
。。。。。。。。。。。。。。。。。。。。。。。。。
CADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
CString sql;
CString x,y;
sql = "select * from cqkind";
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet((_bstr_t)sql);
_variant_t var,var1,varIndex;
var = m_pRecordset->GetCollect("dy");
var1 = m_pRecordset->GetCollect("BigClassName");
x = (LPCSTR)_bstr_t(var);
y = (LPCSTR)_bstr_t(var1);
SetDlgItemText(IDC_EDIT1,x);
SetDlgItemText(IDC_EDIT2,y);
return TRUE; // return TRUE unless you set the focus to a control
}
|