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
[52124] Re:dbgrid에서 검색을통해 특정 레코드만 dbgrid에 뿌리고 싶습니다.
danga80 [danga80] 1564 읽음    2008-01-30 16:56
기존에 이미 불러온 데이터 중에 일부.. 그러니까 검색 결과만 그리드에 표시하고 싶으시다면..

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 메소드가 없네요? 이거 어떤식으로 검색 기능을 추가해야 할까요?

+ -

관련 글 리스트
52107 dbgrid에서 검색을통해 특정 레코드만 dbgrid에 뿌리고 싶습니다. ㅎㅎ 1068 2008/01/29
52124     Re:dbgrid에서 검색을통해 특정 레코드만 dbgrid에 뿌리고 싶습니다. danga80 1564 2008/01/30
52122     Re:dbgrid에서 검색을통해 특정 레코드만 dbgrid에 뿌리고 싶습니다. 슬.강슬기 1238 2008/01/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.