|
기존에 이미 불러온 데이터 중에 일부.. 그러니까 검색 결과만 그리드에 표시하고 싶으시다면..
Filter 속성을 사용해보시길 권합니다.
그것이 아니라면, 현재 Query문에 where 절을 넣고 조건을 넣어 다시 가져올 수 밖에 없습니다.
특정 필드를 지정할 때 그냥 콤보박스를 사용하셔야 합니다. db콤보는 데이터 표현과 저장에
손이 덜 간다는 이득이 있지만, 콤보박스의 아이템에 디비 데이터로 자동 갱신되는 그런 기능은 없습니다.
따라서 검색 데이터 및 조건 데이터가 디비에 저장되지 않으므로, 일반 콤보를 쓰시는 게 맞다고 보입니다.
findKey 함수는 TDataSet을 에 있습니다. TDataSet을 상속받은 TADOQuery도 당연히 이 함수가 있습니다.
검색에는 findkey 말고도 Locate 함수를 사용할 수 있습니다. 그러나 이 함수들은 결과 값이 한 개일때만
사용하므로, Filter 를 쓰시거나, 다시 Query 해 오는 것이 맞을 듯 합니다.
Filtered 속성, Filter 속성, OnFilter 이벤트를 참고하시면 Filter에 대한 답이 될 것 같습니다.
도움이 되었으면 좋겠네요, 수고하세요.
ㅎㅎ 님이 쓰신 글 :
: ADOQuery를 사용하여 데이터를 읽어서 dbgrid에 뿌렸습니다.
:
: 여기서 검색기능을 추가하려고 하는데요.
:
: 콤보박스를 사용하여 특정 필드를 지정한다음에
: 에디트 컴포넌트에 특정 필드에 있는 데이터를 입력하고 버튼을 누르면
: 새로운 dbgrid창이 열리거나 기존의 dbgrid창에 특정 데이터가 있는 레코드만 나타나게 하려고 합니다.
:
: 여기서 질문.........
:
: 1. 특정 필드를 지정할때 콤보박스를 써야하나요? 아니면 db콤보박스를 써야하나요?
:
: 2. 테이블 컴포넌트를 써서 db를 불러오는거라면 table->findkey 메소드를 쓰면 되는데
: ADOQuery에는 findkey 메소드가 없네요? 이거 어떤식으로 검색 기능을 추가해야 할까요?
|