C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[12205] Re:[질문] TUpdateSQL 사용 소스 좀 봐주세요..매우 급함..
허접 인디오 [] 933 읽음    2001-10-31 10:42
혹시 참고가 될까 해서 글을 올립니다.
아래분이 말씀한 try.. catch.. 문을 사용해서 익셉션을 처리를 할 수 있습니다.. 그런데 C++ Builder IDE 는 IDE 상의 Exception 이 사용자 Exception 보다 더 우선순위를 차지하는 것 같더군요...
그래서 아마 Exception 처리를 하고자 하는 곳에서 그냥 try... catch... 를 사용한다면 원하는 결과를 얻지 못할 수도 있습니다... ( 저도 이것때문에 고생하다가 최보현 님이 갈캬주셔서 지금은 잘 사용하고 있습니다. 이 기회에 다시한번 최보현님께 감사를... ^^; )

우선은 님이 Exception 처리를 하고자 하는 곳을 try... catch... 문으로 감쌉니다.. try... catch... 구문은 아래분이 말씀하신것 처럼 하면 될 것입니다...
그리고 나서.. Tools|Debug Options 에 가보면 창의 가장 밑에 Intergrated debugging 이라는 체크박스가 있는데 그 체크를 풀어주셔야 사용자 Exception 이 처리가 됩니다..

이 체크를 풀지 않으면 사용자 Exception 처리가 잘 되지 않는것 같더군요.. ^^;
그럼 참고가 되었으면 하네요.. 즐프하세용... ~~~

몰라요 님이 쓰신 글 :
: 아무 에러 박스도 없이 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;
: }

+ -

관련 글 리스트
12192 [질문] TUpdateSQL 사용 소스 좀 봐주세요..매우 급함.. 몰라요 794 2001/10/30
12205     Re:[질문] TUpdateSQL 사용 소스 좀 봐주세요..매우 급함.. 허접 인디오 933 2001/10/31
12203     Re:[질문] TUpdateSQL 사용 소스 좀 봐주세요..매우 급함.. 남병철.레조 838 2001/10/31
12204         Re:Re:[재질문] exception message가 나타나지 않아요!!! 몰라요 954 2001/10/31
12207             Re:Re:Re:[재질문] exception message가 나타나지 않아요!!! 남병철.레조 825 2001/10/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.