Q&A

  • query로 검색을 했는데,, 비슷한 문자열 포함..
디비는 엑세스 디비에용...

질문의 요지는 query로 검색을 했습니다.



query1.close;

query1.sql.Clear;

query1.sql.Add('select * from 인적사항');

query1.SQL.Add('where 이름 like :find4');

query1.ParamByName('find4').AsString :='%'+edit1.text+'%';

query1.open;





요렇게 해서 다른 그리드에 표시하는 거거든요...근데... '가나다'만 나왕요..

예를 들어 edit에 '나다'라고 치면 '가나다'와 '나다'라는 사람이

같이 그리드에 표시가 되거든요....그런데.. 이중에서 '나다'를 찾고 싶을때...

우째야.. 되나요....

query1.ParamByName('find4').AsString :=edit1.text+'%';

게 해도 안되요...



1  COMMENTS
  • Profile
    신범호 2000.05.20 00:41
    올랭이 wrote:

    > 디비는 엑세스 디비에용...

    > 질문의 요지는 query로 검색을 했습니다.

    >

    > query1.close;

    > query1.sql.Clear;

    > query1.sql.Add('select * from 인적사항');

    > query1.SQL.Add('where 이름 like :find4');

    > query1.ParamByName('find4').AsString :='%'+edit1.text+'%';

    > query1.open;

    >

    >

    > 요렇게 해서 다른 그리드에 표시하는 거거든요...근데... '가나다'만 나왕요..

    > 예를 들어 edit에 '나다'라고 치면 '가나다'와 '나다'라는 사람이

    > 같이 그리드에 표시가 되거든요....그런데.. 이중에서 '나다'를 찾고 싶을때...

    > 우째야.. 되나요....

    > query1.ParamByName('find4').AsString :=edit1.text+'%';

    > 게 해도 안되요...





    그러니까 단지 '나다' 두 글자만 들어간것 말씀이시져?



    그러면 쿼리를 한번 더하면 어떨까여..

    procedure ..............

    var temp : string;

    begin

    temp := '';

    temp := 'select * from '

    + '(select * from 인적사항'

    + 'where 이름 like :find4) a '

    + 'where len(a.이름) = 2 ';

    Query1.Close;

    Query1.SQL.Clear;

    Query1.sql.Add(temp);

    Query1.ParamByName('find4').AsString := '%' + edit1.Text + '%';

    Query1.open;



    end;

    이렇게하면 먼저 '나다' 가 들어간사람이 먼저 조회되고

    그다음 '나다'가 들어간 사람중에서 이름이 2자인사람면 조회되면.

    결국 '나다' 만 나올것 같은데여..

    답변이