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 하려면 어떤 방법이 았는지...
마지막에 상태에 따라 Commit, Rollback 처리를 하면 됩니다.
DB 처리를 하신다면 반드시 트랜잭션 처리를 해두시는 것이 좋다고 생각합니다.
비정상적인 데이터로 인해 프로그램에서 문제가 발생할 가능성이 있으니까요.