|
안녕하십니까? 레조입니다.
모든 익셉션을 잡아 메시지를 볼 수 있습니다.
try
{
...
}
catch( Exception& E )
{
ShowMessage( E.Message );
}
익셉션 처리에서 가장 문안한 방법입니다.
몰라요 님이 쓰신 글 :
: 아무 에러 박스도 없이 Exception이 일어나 그냥 그 함수가 끝납니다.
: exception을 잡으려 " upsqlSEND->ModifySQL->Clear(); "문에
: try..catch도 해보았지만 어떤 exception class인지 몰라서 힘듭니다.
: 모든 exception class를 포함하는 class는 없나요??
: TQuery, TUpdateSQL을 동적생성했으며 쿼리의 OnUpdateRecord 이벤트에
:
: qrySEND->OnUpdateRecord = UpdateSEND; 하였습니다.
:
:
: 호출 :
: UpdateSEND(qrySEND, ukModify, uaFail);
:
:
: void __fastcall TProcess::UpdateSEND(TDataSet* DataSet, TUpdateKind UpdateKind, TUpdateAction &UpdateAction)
: {
: TUpdateSQL *upsqlSEND = (TUpdateSQL *)((TBDEDataSet *)DataSet)->UpdateObject;
:
:
: switch (UpdateKind)
: {
: case ukModify:
:
: //////////////////////// 여기서부터 그냥 끝남
: upsqlSEND->ModifySQL->Clear();
: upsqlSEND->ModifySQL->Add("update SEND set SND_FLAG = :DELETED, SND_SENDDATETIME = :QSENDDATETIME,");
:
: upsqlSEND->ModifySQL->Add("SND_NEXTDATETIME = :QNEXTDATETIME, SND_CALLCOUNT = :QCALLCOUNT");
: upsqlSEND->ModifySQL->Add("where SND_NUM = :QRECNUM");
:
: upsqlSEND->SetParams(UpdateKind);
: upsqlSEND->Query[UpdateKind]->ParamByName("DELETED")->Value = FLAG_DELETED;
: upsqlSEND->Query[UpdateKind]->ParamByName("QSENDDATETIME")->Value = dtdSendQ.senddate;
: upsqlSEND->Query[UpdateKind]->ParamByName("QNEXTDATETIME")->Value = dtdSendQ.senddate + g_cfgData.intertime;
: upsqlSEND->Query[UpdateKind]->ParamByName("QCALLCOUNT")->Value = dtdSendQ.callcount;
: upsqlSEND->Query[UpdateKind]->ParamByName("QRECNUM")->Value = dtdSendQ.q_keynum;
: break;
: case ukInsert:
: dlgLog ("insert");
: break;
: case ukDelete:
: dlgLog ("delete");
: }
:
: upsqlSEND->ExecSQL(UpdateKind);
: UpdateAction = uaFail;
:
: delete upsqlSEND;
: }
|