4,012
社区成员
发帖
与我相关
我的任务
分享
BOOL CADO::InitADO(CString ip,CString db,CString user,CString password)//连接数据库
{
if(!b)
{
b = AfxOleInit();
}
TCHAR tem[MAX_PATH] = {0};
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect=TEXT("Provider=SQLOLEDB;server=") + ip + TEXT(";Database=") +
db + TEXT(";uid=") + user +
TEXT(";pwd=") + password + "";
try
{
m_pConnection->Open(strConnect,_T(""),_T(""),adModeUnknown);
}
catch(_com_error e)
{
//AfxMessageBox(e.Description());
m_pConnection = NULL;
return FALSE;
}
isClosed = FALSE;
return TRUE;
}
BOOL CADO::ExecuteSQL(_bstr_t bstrSQL)//执行sql
{
if (m_pConnection==NULL)
{
return FALSE;
}
if(m_pConnection-> State == adStateOpen)
{
try
{
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
}
catch(_com_error *e)
{
/*if (!lstrcmp(e->Description(),TEXT("连接失败 ")) || !lstrcmp(e->Description(),TEXT("连接关闭 ")))
{
isClosed = TRUE;
}*/
return FALSE;
}
return TRUE;
}
}
BOOL CADO::IsConnect()//判断当前的连接状态
{
try
{
//状态判断
if(m_pConnection==NULL)
return false;
if(m_pConnection->GetState()==adStateClosed)
return false;
m_pConnection->Execute(TEXT("select getdate() "),NULL,adCmdText);
return true;
}
catch(_com_error* e)
{
if (!lstrcmp(e->Description(),TEXT("连接失败 ")) || !lstrcmp(e->Description(),TEXT("连接关闭 ")))
{
isClosed = TRUE;
}
}
return false;
}
try
{
pConnection-> Execute( "select 1 ");
}
catch(_com_error e)
{
}
if(m_pConnection==NULL)
return false;
if(m_pConnection->GetState()==adStateClosed)
return false;
//参数判断
long lErrorCount = m_pConnection->Errors->Count;
if(lErrorCount>0L)
{
ErrorPtr pError = NULL;
for(long i=0; i<lErrorCount; i++)
{
pError = m_pConnection->Errors->GetItem(i);
if(pError->Number==0x80004005)
return false;
}
}
return true;
}
catch(_com_error* e)
{