Q&A

  • table에서 레코드 제외시키기
테이블에서 필터 조건을 이용해서 레코드를 추려냈습니다.
그런데 그걸로 부족해서 몇 개 조건에 맞는 레코드들을 빼려구 하거든요.
물론 삭제시키는 건 아니구요.

근데 그 조건이란게 다른 테이블과 관련이 있어서 필터로는 사용을 못하네요.
테이블에서 필터링을 한다고 해서 삭제되는 건 아니고 그냥 선택만 안되는 거잖아요.

그런 식으로 어떤 특정한 레코드를 현재 선택된 레코드들 중에 제외시킬 수 있는
함수가 있나요?

뭐 join인가 이런 걸로 해결해야 하나요?
5  COMMENTS
  • Profile
    정성훈 2002.10.29 18:56
    질문이해를 제대로 한건지 제가 좀 헷갈리는데.
    특정한 레코드를 제외시킨다는 저 말은 조건문에서 해결해야할것 같은데요.
    필터로 연결시키기 전에 미리 오픈된 자료를 어떤 조건으로 검색상태에서
    필터로 연결시키면 원하는 값만 가져올 수 잇는거죠.
    특정레코드가 아니고 필드를 가져와야 한다면 join 이나 lookup, 같은것을 쓰시면 되고요..

    그럼.

  • Profile
    윤성용 2002.10.29 20:02
    먼저 답변 해주신 것 감사하구요.

    상황을 다시 설명을 드리자면

    table.filter := 'xxxx';
    table.filtered := True;

    이렇게 하면 레코드들이 선택(?)이 되구요.
    이걸 DBGrid에서 보면

                   field1       field2
    record1     xxx         xxxx
    record2     xxx         xxxx
    record3     xxx         xxxx
    record4     xxx         xxxx

    이렇게 보이잖아요.

    근데 이 중에서 record2를 뺄 수 있는 함수가 있는지 묻는겁니다.
    다른 테이블을 참조해서 레코드를 빼야하기 때문에 필터 조건을 이용하진 못할 것 같구요.
    첨엔 잘 몰라서 delete함수를 썼더니 아예 삭제가 되더군요 ㅠ.ㅠ;;

    어떤 함수(혹은 프로시저)를 쓰면 레코드를 뺄 수 있는지???

  • Profile
    정성훈 2002.10.29 23:01
    안녕하세요
    궁금한게 잇는데 처음에 레코드를 가져오실때 조건을 줘서 가져온값 아닌가요?
    조건이 알맞게 주시면 레코드2를 제외한 1,3,4를 가져오기만 하는거죠
    필터는 어차피 보이는 것들만 나오니까..

    레코드를 뺀다?? 자료가 석제만 안되면 되고 선택된 레코드의 라인은 지워지면 되는거 아닌지요....??
    이거라면..cashed update 상태에서 그냥 Query1.Delete 하면 될텐데요..
    음 그게 아니고 선택된레코드는 그 dbgrid에서 빠지고 다른데다 뿌려지는 그런식?? 이라면..
    레코드를 뿌려주고 delete 하시면 될것같은데요..
    방법은 많거든요.
    다시 한번 해보세요.

  • Profile
    윤성용 2002.10.30 05:43
    거듭되는 답변에 거듭 감사...

    근데요 Query1.delete를 쓰니깐
    closed dataset error가 나네요...

    제가 설명한 게 좀 이상하긴 한데요.
    그러니깐 필터링을 하면 조건에 맞는 레코드를 제외하고 나머지들은
    걸러지잖아요?
    이걸 뺀다고 한거거든요.
    근데 이렇게 조건에 맞는 건 필터를 쓰면 되는데
    각각 한 레코드씩 조건에 맞는 걸 또 검사해서 빼려면 무슨 함수인지...

    table. 해놓고 프로시저들을 읽어봐도 마땅한 게 없네요...

  • Profile
    배종윤 2002.11.19 20:58
    셋 랜지 사용해 보세요