(Exmaple)
procedure TForm1.TransferButtonClick(Sender: TObject);
var
Amt: Integer;
TD: TTransactionDesc;
begin
if not SQLConnection1.InTransaction then
begin
TD.TransactionID := 1;
TD.IsolationLevel := xilREADCOMMITTED;
SQLConnection1.StartTransaction(TD);
try
Amt := StrToInt(AmtEdit.Text);
Debit.Params.ParamValues['Amount'] := Amt;
Credit.Params.ParamValues['Amount'] := Amt;
SQLConnection1.Commit(TD); {on success, commit the changes};
except
SQLConnection1.Rollback(TD); {on failure, undo the changes};
end;
end;
end;
조용호 님이 쓰신 글 :
: dbExpress를 사용하신다면
:
: SQL Connection 에 StartTransaction, Rollback, Commit이 있습니다..
:
: TTransactionDesc 로 트랙젝션 변수 하나 만드셔서 사용하면 됩니다..
:
: 그럼 즐프하세요..^^
:
:
: 김도형 님이 쓰신 글 :
: : dbExpress, firebird1.5 입니다.
: :
: : 다름이 아니오라...
: :
: : begin
: : insert... tableA
: : update... tableB
: : end;
: :
: : 위와 같은 문장이 있을때
: : 트랜잭션을 어떻게 걸어야 하는지 모르겠습니다.
: :
: : 3-tier 프로그래밍 할땐 Tmax 에서 트랜잭션 시작과
: : 커밋, 롤백이 있어서
: :
: : 에러 발생시 롤백이 가능했는데요..
: :
: :
: : 파이어버드에서는 어떻게 트랜잭션을 걸어야 하는지 모르겠습니다.
: :
: :
: :
: : -답변 미리 감사합니다-
|