현재 TTable을 이용하여 DB에서 검색을 하도록 해놓고 있습니다.
필터링 옵션을 통하여 의외로 쉽게 구현가능 하더군요.
근데 다음과 같은 필드내용을 어떻게 검색해야 할지 난감하네요.
예를들어 아래와 같은 데이터가 있을경우
필드 1
21, 22, 23
22, 27, 500
24, 27, 100
위의 데이터들 중에서 22가 들어가 있는 것들만 보여줄려면 어떻게 해야 하나요?
나름 머리를 써서
table1.Filter := '필드1 = '22*' ';
이렇게 했더니 22, 27, 500에 해당하는 데이터만 보이네요.
저는 22로 검색하면
21, 22, 23
22, 27, 500
이렇게 보여지도록 구성하고 싶거든요.
델파이를 시작한지 오늘로서 딱 한달 채웠네요.
볼수록 나름대로 재미있어서 요즘에는 조금씩 즐기는 중입니다.
좋은 답변 부탁드려요~~
필드 = '22*' 이런식으로는 사용이 가능하지만
필드 = '*22' 이렇게는 사용되지 않습니다.
물론 필드 = '*22*' 이것도 필터가 되지 않습니다.
그래서 첫문자 필터만 가능하죠...
이 문제 때문에 TTable을 사용하지 않고 TQuery를 사용합니다.
TQuery사용하면 다양한 검색을 하실 수 있습니다.
TQuery사용법을 간단히 말하자면
컨포넌트를 폼에 올려두시고(DB가 paradox라고 가정할때)
<!--CodeS-->
1. 기본적인 테이블 전체조회
Query1.Close;
Query1.DataBaseName := 'C:\테이블이 있는 위치';
Query1.SQL.Text := 'SELECT * FROM [테이블명]';
Query1.Open;
2. 원하는 조건의 데이터만 불러오기
Query1.Close;
Query1.DataBaseName := 'C:\테이블이 있는 위치';
Query1.SQL.Text := 'SELECT * FROM [테이블명]'
+ ' WHERE [필드1] like "22%"';
Query1.Open;
3. 질문하신 형태의 데이터만 불러오기
Query1.Close;
Query1.DataBaseName := 'C:\테이블이 있는 위치';
Query1.SQL.Text := 'SELECT * FROM [테이블명]'
+ ' WHERE [필드1] like "%22%"';
Query1.Open;
<!--CodeE-->
데이터베이스를 지정하고 데이터 소스와 연결하고 하는 부분은 TTable과 같으므로
사용하시는데 크게 어려움은 없으시리라 생각합니다. ^^ 그럼