|
#import"C:ProgramFilesCommonFilesSystemadomsado15.dll"no_namespacerename("EOF","rsEOF")
#include<iostream>
usingnamespacestd;
//数据库基本操作类
classDataAccess
{
private:
//申明数据库对象
_ConnectionPtrpConn;
_RecordsetPtrpRst;
_CommandPtrpCmd;
//连接标识符
boolflag;
public:
DataAccess()
{
//初始化连接对象
CoInitialize(NULL);
//创建ADO连接实例
pConn.CreateInstance(__uuidof(Connection));
//创建ADO记录集实例
pRst.CreateInstance(__uuidof(Recordset));
//创建ADO命令实例
pCmd.CreateInstance(__uuidof(Command));
//定义连接字符
pConn->ConnectionString="Provider=SQLOLEDB;Server=(local);Database=Book;uid=sa;pwd=;";
//标识符默认为false
flag=false;
}
~DataAccess()
{
//记录集不为空,释放记录集
if(pRst!=NULL)
{
pRst->Close();
pRst.Release();
}
//Cmd类不为空,释放Cmd
if(pCmd!=NULL)
{
pCmd.Release();
}
//连接不为空,释放连接
if(pConn!=NULL)
{
pConn->Close();
pConn.Release();
}
}
//打开数据库,成功返回TRUE,失败返回FALSE
BOOLopenConn()
{
try
{
this->pConn->Open("","","",adConnectUnspecified);
flag=true;
returnflag;
}
catch(_com_error&e)
{
returnFALSE;
}
}
//执行SQL语句,成功返回_Recordset,失败返回NULL
_RecordsetPtrsearchSql(_bstr_tsql)
{
try
{
if(flag==false)
{
this->openConn();
}
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText=sql;
this->pRst->Open(sql,(IDispatch*)this->pConn,adOpenDynamic,adLockOptimistic,adCmdText);
//this->pRst=pCmd->Execute(NULL,NULL,adCmdText);
returnpRst;
}
catch(_com_error&e)
{
returnNULL;
}
}
}; |
|
|