begin
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;
생각하시는 것처럼
이미 commit 을 했기 때문에 DB수준에서 다시 롤백을 할 수는 없습니다.
그러므로,
뭐 아무거나 이용해서
해당 테이블에
insert into ..... 쿼리를 날려서 삽입하면 될거구요
이때 다른 객체에 연결되어 있는 제약조건이 있어
임의 삽입이 되지 않는다면
해당 제약조건을 먼저 disable 시킨 후에
삽입하고
다시 제약조건을 enalbe 시키면 됩니다.
일련번호가 10번인 레코드를 삭제하셨다는건가요?
데이타의 변경이나 삭제 추가 하신 경우에는 트랜잭션이 걸려있는경우
TDataBase.RollBack이란걸 이용할수 있습니다..
이럼 TDataBase.Commit 마지막으로 일어난 작업부터 했던 작업을
다시 무효화 할수 있습니다..아래는 commit로 헬프를 찾음 나오는 예제입니다.
procedure TForm1.ApplyButtonClick(Sender: TObject);
begin
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;
end;