|
: while(1)
: {
: if ( memcmp(DB1->Table1->FieldByName("시리얼 번호")->AsString.c_str(),
에서 while(!DB1->Table1->Eof) 로 고치면 될듯 합니다.
인덱스를 사용하지 않고 레코드를 검색하는 경우에는 Locate 라는 함수를 사용해 보십시요...
bool re=DB1->Table1->Locate("시리얼번호",Serial.SubString(1,16),TLocateOptions());
if(re){
//레코드 찾았음
}else{
//레코드 없음
}
예진 님이 쓰신 글 :
: while(1)
: {
: if ( memcmp(DB1->Table1->FieldByName("시리얼 번호")->AsString.c_str(),
: Serial.c_str(), 16) == 0 ) // DB와 시리얼 번호 비교
: {
: SNewGoodKind = "L";
: break;
: }
: DB1->Table1->Next();
: }
: if (SNewGoodKind == "") return;
: if (SOldGoodKind != SNewGoodKind)
: {
: CompSeq->Clear();
: SumGds->Clear();
: iCompCnt = 0; iSumCnt = 0;
: FImageReset(SNewGoodKind); // Background Image
: for(int i = 0; i < 15; i++)
: for(int j = 0; j < 6; j++)
: StringGrid1->Cells[j][i] = "";
: PanelQty->Caption = 0;
: PanelAmt->Caption = 0;
: }
: 에서요.. 입력 시리얼 번호와 DB의 시리얼 번호를 비교해서 맞는게 있으면 SNewGoodKind에 "L"을
:
: 넣는 부분인데요..
:
: 만약 DB 에 없는 시리얼이 입력이 되면 마우스 포인트가 모래시계로 변하면서 모래시계 밑에 SQL이라고
:
: 나오면서 다운이 되어 버립니다.. 아마도 시리얼번호가 DB에 없기 때문에 찾느라고 그런지 멈춰 버리네요.
:
: 그냥 시리얼 번호가 DB에 없더라도 다음 레코드로 넘어가서 다운되는 것없이 계속 검색을
:
: 할 수 있게 하려면 어떻게 해야 할까요?
|