Q&A

  • [질문]쿼리실행시 트랜잭션 처리 방법..
DB: FIREBIRD 2.0

트랜잭션을 사용하는데
기본적인 데이타의 추가하거나 삭제할때는 트랜잭션이 가능한데
EXECSQL 을 사용하는 퀴리는 트랜잭션과 상관없이 COMMIT 되는것 같은데
EXECSQL 을 사용하는 것도 별도의 트랜잭션이 필요한가요?

예를 들면

Query1.Append;
Query1.Post;
Query1.ApplyUpdates;
db.Commit;
...

이런것은 트랜잭선이 가능함 (commit,rollback)

with query1 do begin
   close; sql.clear;
   sql.add('insert  into  table1 (field1,field2) values ('1','2'));
  execsql;
end;

이건 트랜잭션이 없이 바로 commit 되는데.. 이걸 rollback 하려면 어떤 방법이 았는지...
1  COMMENTS
  • Profile
    까마귀 2008.11.17 22:59
    Query 실행전에 명시적으로 StartTransaction 을 줘서 트랜잭션 시작을 알리고요.
    마지막에 상태에 따라 Commit, Rollback 처리를 하면 됩니다.

    DB 처리를 하신다면 반드시 트랜잭션 처리를 해두시는 것이 좋다고 생각합니다.
    비정상적인 데이터로 인해 프로그램에서 문제가 발생할 가능성이 있으니까요.