Advertisement
Advertisement
| 04.07.2008 at 10:17AM PDT, ID: 23302039 |
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: |
INT CDbControl::GetAppConfig_NeedRestart(INT AppID, BOOL& needRestart, CString& originator, CString& comment)
{
INT id = -1;
ADODB::_CommandPtr p_cmd;
if (Create_a_SP_Command(p_cmd, m_main_Connection, _T("dbo.spGetRestartFlag")) == FALSE)
return id;
variant_t vOriginatorInput, vCommentInput;
vOriginatorInput.vt = VT_BSTR;
vOriginatorInput.bstrVal = SysAllocString(L"");
vCommentInput.vt = VT_BSTR;
vCommentInput.bstrVal = SysAllocString(L"");
try
{
//@Application ID - Input
VARIANT vApp_Id;
vApp_Id.vt = VT_INT;
vApp_Id.intVal = AppID;
p_cmd->Parameters->Append(p_cmd->CreateParameter(_bstr_t(_T("AppId")),ADODB::adInteger,ADODB::adParamInput,-1,vApp_Id));
//@Need Restart - Output
VARIANT vNeedRestart;
vNeedRestart.vt = VT_BOOL;
vNeedRestart.boolVal = FALSE;
ADODB::_ParameterPtr p_needRestartParm = p_cmd->CreateParameter(_bstr_t(_T("@NeedRestart")),ADODB::adBoolean,ADODB::adParamOutput,-1,vNeedRestart);
p_cmd->Parameters->Append(p_needRestartParm);
//@Originator - Output
ADODB::_ParameterPtr p_originatorParm = p_cmd->CreateParameter(_bstr_t(_T("@Originator")),ADODB::adVarChar,ADODB::adParamOutput,255,vOriginatorInput);
p_cmd->Parameters->Append(p_originatorParm);
//@Comment ID - Output
ADODB::_ParameterPtr p_commentParm = p_cmd->CreateParameter(_bstr_t(_T("@Comment")),ADODB::adVarChar,ADODB::adParamOutput,4000,vCommentInput);
p_cmd->Parameters->Append(p_commentParm);
p_cmd->Execute(NULL, NULL , adCmdStoredProc);
if(p_originatorParm->Value.vt != VT_NULL && p_originatorParm->Value.vt != VT_EMPTY)
{
variant_t vOriginatorOutput;
vOriginatorOutput.vt = VT_BSTR;
vOriginatorOutput.bstrVal = SysAllocString(L"");
vOriginatorOutput = p_originatorParm->Value;
originator = CString(vOriginatorOutput.bstrVal).Trim();
SysFreeString (vOriginatorOutput.bstrVal);
vOriginatorOutput.bstrVal = NULL;
}
if(p_commentParm->Value.vt != VT_NULL && p_commentParm->Value.vt != VT_EMPTY)
{
variant_t vCommentOutput;
vCommentOutput.vt = VT_BSTR;
vCommentOutput.bstrVal = SysAllocString(L"");
vCommentOutput = p_commentParm->Value;
comment = CString(vCommentOutput.bstrVal).Trim();
SysFreeString (vCommentOutput.bstrVal);
vCommentOutput.bstrVal = NULL;
}
if(p_needRestartParm->Value.vt != VT_NULL && p_needRestartParm->Value.vt != VT_EMPTY)
{
vNeedRestart = p_needRestartParm->Value;
needRestart = vNeedRestart.boolVal;
}
id = 0;
}
catch(_com_error& e)
{
CString err;
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
// Print COM errors.
err.Format(_T("Error\n"));
err.AppendFormat(_T("\tCDbControl::GetAppConfig_NeedRestart Code = %08lx\n"), e.Error());
err.AppendFormat(_T("\tCode meaning = %s\n"), e.ErrorMessage());
err.AppendFormat(_T("\tSource = %s\n"), (LPCSTR) bstrSource);
err.AppendFormat(_T("\tDescription = %s\n"), (LPCSTR) bstrDescription);
TRACE(err);
theLog.Log(err, EVENTLOG_WARNING_TYPE, DATABASE, 0, WARNING);
id = -1;
}
catch (...)
{
CString err;
err.Format(_T("Unknown error GetAppConfig_NeedRestart"));
theLog.Log(err, EVENTLOG_ERROR_TYPE, DATABASE, 0 , WARNING);
id = -1;
}
SysFreeString (vOriginatorInput.bstrVal);
SysFreeString (vCommentInput.bstrVal);
CloseAndClean_Command(p_cmd);
return id;
}
|