|
오늘도 변함없이 도움을 주셔서 감사합니다..유부남님...
제가 궁금한건요..님의 말씀대로 하면 메세지가 99번 나와야 하거든요..
그렇기 때문에 환장하겠다는 겁니다.메세지는 이것도 저것도 아닐때 한번만 나와야 하거든요..
휴..........암튼 감사 합니다....
유부남 님이 쓰신 글 :
: ITEM->Open();
: ITEM->First();
:
: for(cnt = 0 ; cnt < ITEM->RecordCount ; cnt++)
: {
: if(ITEM->FieldByName("FLAG1")->AsString == "1") //실행부;
: else if(ITEM->FieldByName("FLAG1")->AsString == NULL) ITEM->Next();
: else ShowMessage("입력번호가 틀립니다");
: }
: ITEM->Close();
:
: 위 코드가 실험하신 코드 그대로라면 논리오류가 있는 것같습니다.
: 레코드 포인터가 NULL일때만 이동함으로,
: 참의 경우에는 같은 레코드만 레코드 수만큼 검사하고 말겠군요.
: 아래처럼 바꾸어보시쬬.
:
: ITEM->Open();
: ITEM->First();
:
: for(cnt = 0 ; cnt < ITEM->RecordCount ; cnt++)
:
: if(ITEM->FieldByName("FLAG1")->AsString == "1") //실행부;
: else if(ITEM->FieldByName("FLAG1")->AsString == NULL); // skip
: else ShowMessage("입력번호가 틀립니다");
:
: ITEM->Next(); // 한번돌고 레크드 이동시키고...
: }
: ITEM->Close();
:
:
: 시후 님이 쓰신 글 :
: : db는 파라독스를 섰구요..테이블에는 99개의 CODE값을 가지고 있고요..FLAG1,FLAG2가 있습니다.
: : CODE값 중에서 FLAG1에 1값이 있으면 아래의 실행부를 실행하구요..NULL이면 레코드카운트를 이동하고요..이것도 저것도 아니면 메세지를 띄울려구 하는데..
: :
: : ITEM->Open();
: : ITEM->First();
: :
: : for(cnt = 0 ; cnt < ITEM->RecordCount ; cnt++)
: : {
: : if(ITEM->FieldByName("FLAG1")->AsString == "1") //실행부;
: : else if(ITEM->FieldByName("FLAG1")->AsString == NULL) ITEM->Next();
: : else ShowMessage("입력번호가 틀립니다");
: : }
: : ITEM->Close();
: :
: : 대충 이런 형태인데..카운트가 99개니깐 FLAG1이 NULL값이면 이게 레코드카운트를 다 돌리고 기냥
: : 빠져 버리걸랑요..카운트 다 돌고 값이 없으면 ShowMessage를 보여야 하는데..이건 암만 생각해도
: : 루틴이 생각이 안나네요...
: : 매일 열분 고수님들을 괴롭혀서 지송합니다..
: :
|