: 안녕하세요 너구립니다.. (제 별명이 너구리예여.. ^^;;; )
:
: 이번에는 소스를 올릴께요...
:
: barcode값을 입력받는 edit box에서 엔터를 눌렀을때
:
: 그 값이 디비에 있는지 없는지 검색하려고 합니다.
:
: void __fastcall TfrmMain::edtBarcodeKeyPress(TObject *Sender, char &Key)
: {
: if(Key == VK_RETURN) {
: AnsiString tempqry;
: tempqry = "select * from equip where Barcode='";
: tempqry += edtBarcode->Text;
: tempqry +="'";
:
: DataModule3->Query1->Close();
: DataModule3->Query1->SQL->Clear();
: DataModule3->Query1->SQL->Add(tempqry);
: DataModule3->Query1->ExecSQL();
: }
: }
: 여기까지 했는데 그 이후에 어떻게 해야 할지 모르겠네요..
:
: 큐어리 결과 값을 어떻게 얻을수 있을까요?
:
: 에공 완전 초짜 질문입니다.. 웃지만 마시구 부디 답변 부탁
:
: 드립니다. ^^
:
: 그리구 edtBarcode에서 OnEnter라는 이벤트를 사용하려고 했었는데..
:
: 에디트 박스에 마우스 클릭만 해도 이벤트 처리를 하더군여..
:
: 왜 그런거죠?
:
: 그럼 좋은 하루 되세여...
위의 과정까지 마치셨으면 거의 99%가 다 된거에엽...
위의 쿼리 내용을 보니까 에디트박스에 입력한 내용과 같은 바코드넘버를 찾는거 같은데...
그 결과값이(결과적으로 일치하는 값이 있으면 그 내용이 들어있을 거구...만일 일치하는 값이 없다면 비어있겠죠???)DataModule3->Query1에 들어 있습니다...
체크하는 방법으로는...
먼저 일치하는 결과값이 있는가 없는가를 체크해야 하니까...
(DataModule3 를 DM으로 Query1을 Qry로 하겠습니다..너무기니까^^)
if (DM->Qry->Bof==true && DM->Qry->Eof==true){
//Bof와 Eof가 true라면 일치하는 값을 찾아내지 못해서 비어있단 말입니다...
ShowMessage("일치하는 값이 없습니다");
}
else{ //일치하는 값이 있다면...
.
.//처리해야할부분을 처리한다
.
}
위의 OnEnter는 그 해당 컴포넌트가 포커스를 가질때 발생하는 이벤트이므로 캐럿이 그 컴포넌트로 들어갈때 발생한다고 보시면 되겠군요...
그럼 참고가 되셨기를...
|