您的位置:首页 > 编程语言 > C语言/C++

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

2014-04-30 16:38 323 查看
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(); //释放环境

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: