資源簡介
C++ADO連接SQLServer封裝類,實現類的封裝方便使用

代碼片段和文件信息
#include?“stdafx.h“
#include?
#include?“ADO.h“
CADO::CADO(void)
{
CoInitialize(NULL);
m_bTransactionerror?=?false;
m_bTransaction?=?false;
m_lRecordCount?=?0;
m_pConn.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_strDb?=?“127.0.0.11433“;
m_strUser?=?“sa“;
m_strPsw?=?“test“;
}
CADO::~CADO(void)
{
? Close();
? m_pRecordset.Release();
? m_pConn.Release();
CoUninitialize();
}
bool?CADO::Close(void)
{
if?(m_pConn?==?NULL?||?!IsOpen())
return?false;
m_pConn->Close();
return?true;
}
bool?CADO::Connect(void)
{
string?conData?=?“Provider=SQLOLEDB;Server=“;
conData?+=?m_strDb;
conData?+=?“;uid=“;
conData?+=?m_strUser;
conData?+=?“;pwd=“;
conData?+=?m_strPsw;
// conData?+=?“;database=ASPlatConfigDB;“;
try
{
HRESULT?hRet?=?m_pConn->Open(conData.c_str()““““adConnectUnspecified);
if(!SUCCEEDED(hRet))
return?false;
}
catch(_com_error?&comError)
{
dump_com_error(comError);
return?false;
}
return?true;
}
bool?CADO::IsOpen(void)
{
try
{
return?(m_pConn?!=?NULL?&&?(m_pConn->State?&?adStateOpen));
}
catch(_com_error?&e)
{
dump_com_error(e);
}
return?false;
}
void?CADO::dump_com_error(_com_error?&e)
{
string?ErrorStr;
_bstr_t?bstrSource(e.Source());
_bstr_t?bstrDescription(e.Description());
ErrorStr?=?“MAdoDatabase?Error=“;
ErrorStr?+=?“\n\tSource?=“;
ErrorStr?+=?(LPCSTR)bstrSource;
ErrorStr?+=?“\n\tDescripiion?=“;
ErrorStr?+=?(LPCSTR)bstrDescription;
}
bool?CADO::Execute(const?string?&exec)
{
if(?m_pConn?==?NULL?||?exec.empty()?||?!IsOpen()?)
return?false;
try
{
if?(m_bTransaction?&&?m_bTransactionerror)
return?false;
m_pConn->Execute(?exec.c_str()NULLadExecuteNoRecords?);
return?true;
}
catch(_com_error?&e)
{
if?(m_bTransaction)
{
m_bTransactionerror?=?true;
}
dump_com_error(e);
}
return?false;
}
_RecordsetPtr?CADO::Query(const?string?&CommandStr?VARIANT?*?RecordsAffected?/*?=?NULL?*/)
{
try
{
if?(!IsOpen())
return?NULL;
m_pRecordset?=?m_pConn->Execute(CommandStr.c_str()?RecordsAffected?adModeUnknown);
m_lRecordCount?=?GetRecordCount(m_pRecordset);
return?m_pRecordset;
}
catch?(_com_error&?e)
{
dump_com_error(e);
return?NULL;
}
}
long?CADO::BeginTransaction(void)
{
if(m_pConn==NULL)?
return?-1;
try
{
m_bTransaction?=?true;
long?lRet?=?m_pConn->BeginTrans();
m_bTransactionerror?=?false;
return?lRet;
}
catch(_com_error?&e)
{
dump_com_error(e);
m_bTransactionerror?=?true;
return?-1;
}
return?-1;
}
bool?CADO::EndTransaction(void)
{
if(m_pConn?==?NULL)
return?false;
try
{
bool?bRet?=?false;
if?(m_bTransactionerror)
{
m_pConn->RollbackTrans();
bRet?=?false;
}
else
{
bRet?=?SUCCEEDED(m_pConn->CommitTrans());
}
m_bTransactionerror?=?false;
m_bTransaction?=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6473??2012-10-31?13:54??ADO\ADO.cpp
?????文件???????1525??2012-10-31?13:55??ADO\ADO.h
?????文件?????536576??2011-08-13?16:06??ADO\msado15.dll
?????目錄??????????0??2012-10-31?13:55??ADO
-----------?---------??----------?-----??----
???????????????544574????????????????????4
評論
共有 條評論