16,472
社区成员
发帖
与我相关
我的任务
分享
BOOL CDBBase::OpenDatabase()
{
HRESULT hr = S_OK;
m_pConnection.CreateInstance("ADODB.Connection");
if( m_pConnection->GetState()==adStateClosed )
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=ChargeDB.mdb", "","",adModeUnknown);
}
BOOL CDBListen::StartConf(int nConfID,int &nConfType,int &nReturn,char* szCurMCUIP)
{
VARIANT vtParam;
_CommandPtr pCmd = NULL;
_ParameterPtr pPrm1 = NULL;
_ParameterPtr pPrm2 = NULL;
_ParameterPtr pPrm3 = NULL;
CDBInit dbInit;
if( !OpenDatabase() )
return false;
try{
TESTHR(pCmd.CreateInstance(__uuidof(Command)));
pCmd->ActiveConnection = m_pConnection;
pCmd->CommandText = "Do_ConfStart";
pCmd->CommandType = adCmdStoredProc;
pCmd->CommandTimeout = 15;
pCmd->Parameters->Append( pCmd->CreateParameter("MCUIP",
adChar, adParamInput, 15, m_szLocalIPAddr) );
vtParam.vt = VT_I4;
vtParam.lVal = nConfID;
pCmd->Parameters->Append( pCmd->CreateParameter("ConfID",
adInteger, adParamInput, 4, vtParam) );
TESTHR(pPrm1.CreateInstance(__uuidof(Parameter)));
pPrm1->Type = adInteger;
pPrm1->Size = 4;
pPrm1->Direction = adParamOutput;
pCmd->Parameters->Append(pPrm1);
TESTHR(pPrm2.CreateInstance(__uuidof(Parameter)));
pPrm2->Type = adInteger;
pPrm2->Size = 4;
pPrm2->Direction = adParamOutput;
pCmd->Parameters->Append(pPrm2);
TESTHR(pPrm3.CreateInstance(__uuidof(Parameter)));
pPrm3->Type = adVarChar;
pPrm3->Size = 15;
pPrm3->Direction = adParamOutput;
pCmd->Parameters->Append(pPrm3);
pCmd->Execute(NULL,NULL,adCmdStoredProc);
vtParam = pPrm1->Value;
nConfType = vtParam.lVal;
vtParam = pPrm2->Value;
nReturn = vtParam.lVal;
_bstr_t temp(pPrm3->Value);
strcpy(szCurMCUIP,temp);
}catch(_com_error &e){
CloseDatabase();
LOG_Write(g_hLog,"CDBListen::StartConf failed:%s",e.ErrorMessage());
return false;
}
return true;
}