안녕하세요?
즐거운 주말을 보내셨는지 모르겠네요...
오늘도 어김없이 초가 질문을 드립니다...
현재 만들고 있는 프로그램에서 쿼리에 like를 두번 쓰니까 프로그램이 먹통이 되더군요...
슬픈일....
그래서 filter란 걸 알게 되어서 한 번 써 볼려구 하는데... 어떻게 쓰는 것인지...
파일에 대한 필터링밖에 나오지 않았거든요.. 제가 보는 책에...
참~ 제가 필터링을 쓸려구 하는 부분은 패스워드 레벨에 대한 것입니다...
즉 등급을 나눌때 몇개의 레벨을 가지고 나누는데...
그 레벨를 적용할 때 like를 쓰니까 먹통이...
고수님들의 조언을 부탁드립니다....
월요일인데... 즐거운 주말을 보내셨다고 피곤해 하지 마시고... 낼 놀수 있길...
> 안녕하세요?
> 즐거운 주말을 보내셨는지 모르겠네요...
> 오늘도 어김없이 초가 질문을 드립니다...
>
> 현재 만들고 있는 프로그램에서 쿼리에 like를 두번 쓰니까 프로그램이 먹통이 되더군요...
> 슬픈일....
> 그래서 filter란 걸 알게 되어서 한 번 써 볼려구 하는데... 어떻게 쓰는 것인지...
> 파일에 대한 필터링밖에 나오지 않았거든요.. 제가 보는 책에...
> 참~ 제가 필터링을 쓸려구 하는 부분은 패스워드 레벨에 대한 것입니다...
> 즉 등급을 나눌때 몇개의 레벨을 가지고 나누는데...
> 그 레벨를 적용할 때 like를 쓰니까 먹통이...
> 고수님들의 조언을 부탁드립니다....
like를 쓰는게 훨씬 편할텐데, 안 된다니...
필터링을 하는 방법은 다음과 같습니다.
먼저, DataSet의 Filtered := True 로 합니다.
(DataSet은 Table에서나 Query에서나 그 밖의 것에서나 님의 프로그램에 맞게~)
그리고, OnfilterRecord() Event를 만듭니다.
OnfilterRecord 에서 Filtering Definition 을 서술하면 됩니다.
다음은 OnfilterRecord에서 filtering Definition의 예입니다.
procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
if Table1.FiledByName('Password') = 'Pass' then
Accept := True
else
Accept := False;
end;
위는
Select *
from Table1
where Password = 'Pass'
와 똑같은 효과를 가집니다.
like 같은 Search Expression 효과를 가지기 위해서는 filtering definition을
잘 만들어야겠죠~~ ^.^ (즉, Parsing을 잘 해야함)
그럼, 수고하세요~ ^.^
>
> 월요일인데... 즐거운 주말을 보내셨다고 피곤해 하지 마시고... 낼 놀수 있길...