vc++ 中ADO数据库的配置(SQLServer2005)

时间:2014-04-30 22:22:40   收藏:0   阅读:365

1.       首先在StdAfx.h中添加以下代码引入数据库:

#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

2.       然后再VC6.0VS2012中:插入->类,弹出一个窗口,类名叫做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();  //释放环境

}

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!