Q&A

  • Query1: Cannot modify a read-only dataset
안녕하세요 꾸벅~!



Query1.Append를 하는데 Read-Only라고 수정하지 못한다고 나오네요

Query1.CloseDatabase이렇게 닫아 줬더니 이젠 닫아서 못한다고 *^^*

그냥 Database VCL로 하면 수정이 되는데요 Query VCL를 쓰면 안되네요

제가 어딜 안고쳤나요 Read-Only.... 음... 답변 부탁해요 꾸벅~!



P.S: 운영자님 검색하고 나서 두번째페이지부터는 다시 복합적으로

나와버려서 끝까지 찾아보지 못하고 이렇게 질문을 올립니다.

두번째 페이지 보는 방법이 따로 있나요? ㅡ.ㅡ;;



여러분 메리 크리스마스~!(한글? 씨익 *^^*) 새해 복 많이 받으세요

2  COMMENTS
  • Profile
    강상훈 1999.12.25 04:53
    송수현 wrote:

    > 안녕하세요 꾸벅~!

    >

    > Query1.Append를 하는데 Read-Only라고 수정하지 못한다고 나오네요

    > Query1.CloseDatabase이렇게 닫아 줬더니 이젠 닫아서 못한다고 *^^*

    > 그냥 Database VCL로 하면 수정이 되는데요 Query VCL를 쓰면 안되네요

    > 제가 어딜 안고쳤나요 Read-Only.... 음... 답변 부탁해요 꾸벅~!

    >

    > P.S: 운영자님 검색하고 나서 두번째페이지부터는 다시 복합적으로

    > 나와버려서 끝까지 찾아보지 못하고 이렇게 질문을 올립니다.

    > 두번째 페이지 보는 방법이 따로 있나요? ㅡ.ㅡ;;

    >

    > 여러분 메리 크리스마스~!(한글? 씨익 *^^*) 새해 복 많이 받으세요



    Query1콤포넌테에 키와 변경하고자하는 필드를 모두포함시키고요..

    Query1의 속성중에서 requestlive를 true로 설정하세요..그런다음



    TQueryUpdate콤포넌트를 한개 놓고 Query1의 object속성에 TQueryUpdate를 지정합니다.

    그런다음 TQueryUpdate를 따블클릭해서리..insert,update,delete할 문장들을 생성시켜주세요..그런다음 본 script에서 Query1.ApplyUpdate나 기타문구를 걸어주면 되요..

    query1의 select 는 여러 테이블을 조인하거나..조건을 걸어줘도 잘되더라구요...



    좀 무성의하게 올리지만...도움이 되면 좋겠습니다.

    메리크리스마스입니다..히히





  • Profile
    문홍철 1999.12.24 18:37
    송수현 wrote:

    > 안녕하세요 꾸벅~!

    >

    > Query1.Append를 하는데 Read-Only라고 수정하지 못한다고 나오네요

    > Query1.CloseDatabase이렇게 닫아 줬더니 이젠 닫아서 못한다고 *^^*

    > 그냥 Database VCL로 하면 수정이 되는데요 Query VCL를 쓰면 안되네요

    > 제가 어딜 안고쳤나요 Read-Only.... 음... 답변 부탁해요 꾸벅~!

    >

    > P.S: 운영자님 검색하고 나서 두번째페이지부터는 다시 복합적으로

    > 나와버려서 끝까지 찾아보지 못하고 이렇게 질문을 올립니다.

    > 두번째 페이지 보는 방법이 따로 있나요? ㅡ.ㅡ;;

    >

    > 여러분 메리 크리스마스~!(한글? 씨익 *^^*) 새해 복 많이 받으세요



    Query 컴포넌트는 select문을 사용시 수정을 할수가 없게 되어있습니다.

    즉 Open, Active = True에서 말이죠

    수정을 할려면 RequestLive속성이 있습니다. 이것이 디폴트가 False입니다.

    이것을 True하면 수정을 할수 있습니다. 단 query를 Open 하기 전에

    그리고 중요한것이 있는데

    이 형태에서는 session이 유지가 된다는 거죠

    쉽게 야그해서 DB에 Lock을 걸어놓습니다. 수정모드로 들어가면요..

    이걸 방지하기 위해서 Cache를 사용한는 방법이 있습니다.



    또 한가지 select문을 이용한 수정, 신규, 삭제는 단순 Query만 가능하다는거죠,

    DB function이나 Join등을 쓰실수가 었다는 거죠, 우리가 Query를 원하는데로

    날려서 그부분만을 수정을 할려면 Query Component에 UpdateSQL을 링크해서

    사용해얀 합니다.

    하옇든 답변을 하자니 너무 길어서 이만 줄이 겠습니다.

    도움이 되었으면 하고요, 궁금한점이 있으시면 메일 주세요

    Jangdolm@unitel.co.kr