Q&A

  • 'table is readonly' 에럼당..
올만에 와씀당..
다른일을 하다가..
저번에 하던거 다시 이어서 하는데.. 잘 안되네요..^^;

이거.. 전부터 말썽거리였는뎅..
도무지 원인을 알 수가 엄씀당..

'table is readonly'

에러인데요..
이거.. 안떴었거덩요..테스트 다 해보구 넘어간건데..

갑자기 수정하는 부분에서 이런게 뜨네요..
requestlive도 true로 설정 되어 있구욤..

그래서 테이블 다시 만들어서 데이타 다 옮기구..
그리구 테스트하니깐 또 되구 말이죠..

원인이 몰까욤??ㅡ.,ㅡㅋ

저. 두번째 질문임당..
수정버튼 클릭하면 데이타가 수정되면서
옆에있는 그리드에 바로 업그레이드값을 보여주려면
어떻게 하면 되나요??
즉.. 수정되면 실시간으로 보여주려는 겁니다..

저는... 수정다하구나서..
query1.execsql;
query1.close;
query1.open;

요렇게 해가지구.. 됐었는데..
이젠.. 에러가 발생하네요..

' error creating cursor handle'

요건 'open'때문에 그런것 같은뎅..
요것두.. 예전엔 에러가 없었는데.. 다시 생겼네욤..

흠..
답변 주심 감사하겠슴다..

그럼 항상 즐플하시구요..
편한 저녁 맞이하시길 바랍니다..

4  COMMENTS
  • Profile
    머슴 2002.05.22 04:25

    첫번째는 문제는 SQL컴퍼넌트는 본래 ReadOnly입니다..

    따라서 델파이에서는 캐쉬드업데이트를 보통 이용을 합니다..

    방법은 UpdateSQL컴퍼넌트를 놓고 SQL컴퍼넌트의 UpdateObject를

    UpdateSQL컴퍼넌트오 연결을 합니다..

    SQL컴퍼넌트의 속성중에 CashedUpdate를 True로 하면...

    저장이 됩니다...
      
       try

        <만약 DBedit등으로 직접 DB에 저장이 안되었을 경우는
          저장루틴추가 >

        Query1.ApplyUpdates;
        Database1.Commit;
       except
          Database1.Rollback;   raise;
       end;
          Query1.CommitUpdates;





    두번째 답변은 query1.execsql를 Update,insert,Delete를 날린경우에
    에 쓰는 문장입니다..

    Update에 대한 쿼리를 날린것을 다시 Open을 하면 그 DB가 열리지
    않기 때문에 이런 에러가 납니다..

    따라서 첨에 조회했던 쿼리 컴퍼넌트나..다른 컴퍼넌트로 변경된
    자료에 대해서 다시 조회를 해야합니다...

      With  Query1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add(' 조회쿼리');
          Open;
        end;
      
      만약 조회 쿼리이벤트 다시 발생 또는    

      Query1.Close;
      Query1.Open;

      이런식으로 하면 될것 같습니다...    
            
  • Profile
    프로초보 2002.05.22 22:44
  • Profile
    김경록 2002.05.22 04:12
    첫번째 질문의 답변..
        우선, DB가 어떤건지 말씀안하셨군여..
        알아야 답을 해줄텐데..
        이런 에러메세지는 RDBMS에서는 잘 나오지 않는데..
        델파이 디자인시에..
        Table의 필드에 Readonly를 거셨거나..
        CashedUpdates설정을 False로 하셨거나인데..
        Table을 다시 생성하면 된다니..
        이건 알 수 가 없네여..
        DB파일 자체에 ReadOnly가 걸린건 아닐까여?    
      

    두번째 질문의 답변
        이 질문에서 에러메세지를 보면여..
        Oracle같기도 하네여..
        왜냐면..
        이런 에러는 DB에서 열수 있는 Cursor를 제한해
        놓았는데 Cursor를 생성할려고 했을때 나는 에러이기 때문입니다..
        이것은 오라클 설정파일에서 수정해 주시면 될꺼구여..
        설정한 다음에.. DB 재기동해야 함다..
        DB가 RDBMS는 거의 비슷하게 설정하면 될껍니다..
        RDBMS가 아닌데 이런 에러가 난다는건..
        이상하겠져?


    제일 큰 의문...   도대체 DB가 뭘까?

    답이 되셨나여?




  • Profile
    프로초보 2002.05.22 19:36
    감사합니다~^^;