vc++ 中ADO数据库的配置(SQLServer2005)
1. 首先在StdAfx.h中添加以下代码引入数据库:
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")
2. 然后再VC6.0或VS2012中:插入->类,弹出一个窗口,类名叫做CADOConn,基类选择Generic Class(切记)
3. 然后在Class View中双击CADOConn,添加以下代码:
class ADOConn
{
public:
ADOConn();
virtual ~ADOConn();
_ConnectionPtr m_pConnection;//添加一个指向Connection对象的指针
_RecordsetPtr m_pRecordset;//添加一个指向Recordset对象的指针
void OnInitDBConnect();//初始化—连接数据库
_RecordsetPtr &GetRecordSet(_bstr_t bstrSQL);//执行查询
BOOL ExecuteSQL(_bstr_t bstrSQL);//执行SQL语句,Insert Update_variant_t
void ExitConnect();
};
然后在File View中找到ADOCon.cpp文件,添加以下代码:
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
void ADOConn::OnInitDBConnect()
{
::CoInitialize(NULL); //初始化OLE/COM库环境
try
{
m_pConnection.CreateInstance("ADODB.Connection"); //创建connection对象
m_pConnection->Open("driver={SQL Server};Server=小爱-PC\SQLSERVER2005;Database=HCCP;","","",adModeUnknown);
//m_pConnection->Open("driver={SQL Server};Server=HC\\MSSQL2008;Database=HCCP;UID=sa;PWD=","","",adModeUnknown); //设置连接字符串,必须是BSTR型或者_bstr_t类型
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.Description());//显示错误信息
}
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL) //连接数据库,如果connection对象为空,则重新连接数据库8
OnInitDBConnect();
m_pRecordset.CreateInstance(__uuidof(Recordset)); //创建记录集对象
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); //取得集中的记录
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.Description()); //显示错误信息
}
return m_pRecordset; //返回记录集
}
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL) //是否已经连接到数据库
OnInitDBConnect();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.Description()); //显示错误信息
return false;
}
}
void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL) //关闭记录集和连接
{
m_pRecordset->Close();
m_pConnection->Close();
}
::CoUninitialize(); //释放环境
}