Q&A

  • sql문을 사용하여 insert,update작업 (T.T)
SQL문을 사용하여 insert,update,delete 작업을 처리하는데 작업은 처리가 되는데

다시 실행시켜보면 commit 이 않되있고 이전상태의 data를 볼수가 있습니다.

query를 open 한후 데이터 작업처리후 execsql를 하고 난후에 다른 함수를 써

주어야 하는건가요? (post?, or apolyupdate? ,,,,,,,)

궁금이의 폭풍속마음에 따스한 손길을 바라며....

1  COMMENTS
  • Profile
    최영근 2000.10.23 15:03
    델파이궁금이 wrote:

    > SQL문을 사용하여 insert,update,delete 작업을 처리하는데 작업은 처리가 되는데

    > 다시 실행시켜보면 commit 이 않되있고 이전상태의 data를 볼수가 있습니다.

    > query를 open 한후 데이터 작업처리후 execsql를 하고 난후에 다른 함수를 써

    > 주어야 하는건가요? (post?, or apolyupdate? ,,,,,,,)

    > 궁금이의 폭풍속마음에 따스한 손길을 바라며....



    =================



    안녕하세요 ?



    질문에 작업 환경이나 소스를 써주시지 않아서

    정확히 무어라 말씀드리기는 곤란하지만 ('정확한 질문은 정확힌 답을 가져온다')

    말씀하신 것을 보고 유추하여 글을 올립니다



    첫번째로 updateSql 을 사용하셨다면

    우선 Query 의 UpdateObject 속성에 UpdateSql 을 등록하시고

    또한 cachedUpdate 프로퍼티를 true 로 하시고

    Apply 를 하셔야 하고요,



    여기에서 중요한 것은

    updateSql 은 하나의 테이블에 대해서만 작용하기에

    여러 테이블을 시용하신다면 코딩을 해주셔야 하고요,



    두번째로

    Transaction 을 이용하였다면



    Database1.StartTransaction ;

    ...

    Try

    ...

    with Query1 do

    ...

    Sql.insert(update, delete) ;

    ...

    ExecSql;

    ...

    Database1.Commit;

    ...

    Except

    Database1.Rollback;



    이러한 흐름이 됩니다.

    여기서 중요한 것은

    ExecSql 울 싱행했다고 해서

    테이블이 변경이 되는 것이 아니라

    commit 을 해야만 테이블에 저장이 된다는 것이지요.



    물론 위의 두 가지 경우 모두

    dataBase, table, query Componet 가 모두 이상없이 연결되어진

    상태이어야 하겠지요. BDE 를 확인하시고요.

    도움이되기를 바라며..

    그럼 이만.