Q&A

  • 쿼리 검색이 이상해요...도와 주세요
음...어떻게 설명을해야할지...

간단한 주소록을 작성하고 있습니다.

제가 사용하는건 그냥 폼위에 주소목록을 보여주는 그리드가 있고

추가 버튼 그리고 삭제..찾기...등등 이 있습니다.

이걸 사용하는건 일반적인 테이블 컴퍼넌트와 데이터소스 컴퍼넌트 입니다.

그리고 검색에서 사용하는 쿼리 컴퍼넌트가 있구요..

물론 사용 DB는 파라독스 이구요

작동은 잘됩니다.

추가도 되고 수정도...그리고 삭제까지..

문제는 검색입니다.

검색할때 쿼리의 SQL을 사용합니다.

With Query1 Do

begin

Close;

SQL.Clear;

SQL.Add(' SELECT * FROM addr.db ');

SQL.Add(TXT); // TXT는 특정문자 검색입니다...(이상없음)

Open;

end;

이렇게 하면 TXT에 있는 문자열을 검색하게끔 되어있습니다.

근데...

델파이로 프로그램작성시

테이블 컴퍼넌트의 프로퍼티중에서 Active가 있습니다.(제일위에)

이넘을 False 로 하게되면 프로그램작성시 그리드의 내용이 모두 사라지며

다시 True로 하게되면 addr.db의 내용이 그리드로 올라 옵니다...

문제는 바로 여깁니다.

컴파일을 해서 하나의 주소를 추가하게 되면 추가했던 내용은 검색에서

제외된다는 것입니다.하나 뿐만아니라 100개를 추가해도 추가한 100개는

제외 됩니다.

하지만, 다시 프로그램작성으로 돌아와 테이블 컴퍼넌트의 Active속성을

False 로 다시 True로 이렇게 하고 컴파일하면

앞서 추가했던(검색이 안되던)내용이 검색이 가능하다는 것입니다.

하지만 다시 추가하면 또 역시 검색이 안됩니다.





이러한 문제가 발생합니다.....

고수님들...이해가 되셨는지 모르겠군요...쩝..

부디 선처를....

2  COMMENTS
  • Profile
    허춘 2000.08.01 08:49
    김종석 wrote:

    > 음...어떻게 설명을해야할지...

    > 간단한 주소록을 작성하고 있습니다.

    > 제가 사용하는건 그냥 폼위에 주소목록을 보여주는 그리드가 있고

    > 추가 버튼 그리고 삭제..찾기...등등 이 있습니다.

    > 이걸 사용하는건 일반적인 테이블 컴퍼넌트와 데이터소스 컴퍼넌트 입니다.

    > 그리고 검색에서 사용하는 쿼리 컴퍼넌트가 있구요..

    > 물론 사용 DB는 파라독스 이구요

    > 작동은 잘됩니다.

    > 추가도 되고 수정도...그리고 삭제까지..

    > 문제는 검색입니다.

    > 검색할때 쿼리의 SQL을 사용합니다.

    > With Query1 Do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add(' SELECT * FROM addr.db ');

    > SQL.Add(TXT); // TXT는 특정문자 검색입니다...(이상없음)

    > Open;

    > end;

    > 이렇게 하면 TXT에 있는 문자열을 검색하게끔 되어있습니다.

    > 근데...

    > 델파이로 프로그램작성시

    > 테이블 컴퍼넌트의 프로퍼티중에서 Active가 있습니다.(제일위에)

    > 이넘을 False 로 하게되면 프로그램작성시 그리드의 내용이 모두 사라지며

    > 다시 True로 하게되면 addr.db의 내용이 그리드로 올라 옵니다...

    > 문제는 바로 여깁니다.

    > 컴파일을 해서 하나의 주소를 추가하게 되면 추가했던 내용은 검색에서

    > 제외된다는 것입니다.하나 뿐만아니라 100개를 추가해도 추가한 100개는

    > 제외 됩니다.

    > 하지만, 다시 프로그램작성으로 돌아와 테이블 컴퍼넌트의 Active속성을

    > False 로 다시 True로 이렇게 하고 컴파일하면

    > 앞서 추가했던(검색이 안되던)내용이 검색이 가능하다는 것입니다.

    > 하지만 다시 추가하면 또 역시 검색이 안됩니다.

    >

    Make sure you Query's RequestLive = TRUE

    and just Query.Refresh to update your result set.



  • Profile
    4master 2000.08.01 07:04
    김종석 wrote:

    > 음...어떻게 설명을해야할지...

    > 간단한 주소록을 작성하고 있습니다.

    > 제가 사용하는건 그냥 폼위에 주소목록을 보여주는 그리드가 있고

    > 추가 버튼 그리고 삭제..찾기...등등 이 있습니다.

    > 이걸 사용하는건 일반적인 테이블 컴퍼넌트와 데이터소스 컴퍼넌트 입니다.

    > 그리고 검색에서 사용하는 쿼리 컴퍼넌트가 있구요..

    > 물론 사용 DB는 파라독스 이구요

    > 작동은 잘됩니다.

    > 추가도 되고 수정도...그리고 삭제까지..

    > 문제는 검색입니다.

    > 검색할때 쿼리의 SQL을 사용합니다.

    > With Query1 Do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add(' SELECT * FROM addr.db ');

    > SQL.Add(TXT); // TXT는 특정문자 검색입니다...(이상없음)

    > Open;

    > end;

    > 이렇게 하면 TXT에 있는 문자열을 검색하게끔 되어있습니다.

    > 근데...

    > 델파이로 프로그램작성시

    > 테이블 컴퍼넌트의 프로퍼티중에서 Active가 있습니다.(제일위에)

    > 이넘을 False 로 하게되면 프로그램작성시 그리드의 내용이 모두 사라지며

    > 다시 True로 하게되면 addr.db의 내용이 그리드로 올라 옵니다...

    > 문제는 바로 여깁니다.

    > 컴파일을 해서 하나의 주소를 추가하게 되면 추가했던 내용은 검색에서

    > 제외된다는 것입니다.하나 뿐만아니라 100개를 추가해도 추가한 100개는

    > 제외 됩니다.

    > 하지만, 다시 프로그램작성으로 돌아와 테이블 컴퍼넌트의 Active속성을

    > False 로 다시 True로 이렇게 하고 컴파일하면

    > 앞서 추가했던(검색이 안되던)내용이 검색이 가능하다는 것입니다.

    > 하지만 다시 추가하면 또 역시 검색이 안됩니다.

    >



    >

    > 이러한 문제가 발생합니다.....

    > 고수님들...이해가 되셨는지 모르겠군요...쩝..

    > 부디 선처를....



    안녕하세요.

    아주 간단한 문젠데... 테이블에서는 refresh라는 것이 있어서.

    디비의 수정사항을 적용하여 보여줍니다.

    그러나 쿼리에서는 그런 기능이 없으므로.

    close시켰다가 다시 open하는 방법을 사용합니다.

    sql문으로 추가 시켰으면 닫았다가 다시 열어주세요.

    답변이 정확한지 모르겠네요.

    수고하세요.