`
isiqi
  • 浏览: 16054642 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ADO访问SQL(一)

阅读更多
#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;
}
}
};
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics