Q&A

  • 트랜잭션의 처리방법에 대하여...
주로델파이에서 트랜잭션을 시작할때 데이타베이스에 설정을 많이 하시는군요.

저는 직접 TQuery를 사용하여 트랜잭션을 설정하고 있는데(어떤게 나은지는 저도 잘 몰겠네요 ^^;;)

하여튼 이렇게 트랜잭션을 시작하고 나서 입력된 테이블에서 Trigger를 사용하여 다른 테이블들을 건드리고 있는데 이때 (참, DB는 MS Sql 2000 입니다.) 트리거내에서 잘못되어진 내역에 대해서는 에러를 발생시켜서 롤백을 하고 있는데 궁금한거는 여기 있네요...쩝

....

Transaction 시작

insert 문장...

TQuery.Sql.ExecSQL;



이렇게 해서 등록을 하는데 Trigger 내역을 처리하는중 에러가 발생하면 롤백을 하는데

여기까지는 문제가 아닌데...



TQuery.Sql.ExecSQL;

다음으로 database 관련 내역이 잘 처리가 되었는지 확인을 해서 아무문제가 없으로 commit 을 날리고 싶은데 어떻게 할 수 있는 방법이 없을까요...

물론, commit 은 델파이에서 날리는 겁니다.



그냥 Trigger 내에서 처리할수도 있겠지만, 혹시 이런방식으로 처리할 수 있을지 궁금해서 적어봤습니다. 혹시 해결할수 있는 방법을 알고계신 고수님께서는 알려주셔서 저의 궁금증을 풀어주세요...



즐거운 주말 보내세요... 전 아직 일이 많아서리.. 쩝 T.T...





2  COMMENTS
  • Profile
    사발우성™ 2001.12.10 18:05
    if not database1.InTransaction then

    database1.StartTransaction;

    try

    sql.Execsql;

    Database1.commit;

    except

    database1.rollback;

    end;

    이렇게 하면 되겠죠 그럼 즐프엽 ^^

    천명 wrote:

    > 주로델파이에서 트랜잭션을 시작할때 데이타베이스에 설정을 많이 하시는군요.

    > 저는 직접 TQuery를 사용하여 트랜잭션을 설정하고 있는데(어떤게 나은지는 저도 잘 몰겠네요 ^^;;)

    > 하여튼 이렇게 트랜잭션을 시작하고 나서 입력된 테이블에서 Trigger를 사용하여 다른 테이블들을 건드리고 있는데 이때 (참, DB는 MS Sql 2000 입니다.) 트리거내에서 잘못되어진 내역에 대해서는 에러를 발생시켜서 롤백을 하고 있는데 궁금한거는 여기 있네요...쩝

    > ....

    > Transaction 시작

    > insert 문장...

    > TQuery.Sql.ExecSQL;

    >

    > 이렇게 해서 등록을 하는데 Trigger 내역을 처리하는중 에러가 발생하면 롤백을 하는데

    > 여기까지는 문제가 아닌데...

    >

    > TQuery.Sql.ExecSQL;

    > 다음으로 database 관련 내역이 잘 처리가 되었는지 확인을 해서 아무문제가 없으로 commit 을 날리고 싶은데 어떻게 할 수 있는 방법이 없을까요...

    > 물론, commit 은 델파이에서 날리는 겁니다.

    >

    > 그냥 Trigger 내에서 처리할수도 있겠지만, 혹시 이런방식으로 처리할 수 있을지 궁금해서 적어봤습니다. 혹시 해결할수 있는 방법을 알고계신 고수님께서는 알려주셔서 저의 궁금증을 풀어주세요...

    >

    > 즐거운 주말 보내세요... 전 아직 일이 많아서리.. 쩝 T.T...

    >

    >

  • Profile
    천명 2001.12.10 18:19
    제가 말한게 조금 잘못 얘기가 되었낭 보네요.. --;;



    제가 말한 트랜젝션의 시작은 TQuery 를 사용한 시작 즉

    TQuery.Sql.Add(' begin Tran ');

    ExecSql;



    이런식으로의 트랜젝션 시작을 말했는데....



    TDataBase로 시작 하는거 말고요... ^^;;



    질문을 정확히 했어야 되는데... 쩝...