procedure TFrm101.Button1Click(Sender: TObject);
begin
with ClientDataSet1 do
begin
Close;
CommandText := 'Select * from TB_AA';
Open;
Insert;
FieldByName('AA_Code').AsString := '88';
FieldByName('AA_Name').AsString := 'aa';
Post;
Close; <=== 이게 말이 안되는것 같아서요.
CommandText := 'Select * from TB_BB';
Open;
Insert;
FieldByName('BB_Code').AsString := '22';
FieldByName('BB_Code').AsString := 'bb';
Post;
ApplyUpdates(-1);
end;
end;
버튼을 누르면 TB_AA, TB_BB에 동시에 저장해야 합니다.
한쪽이 에러나면 다른쪽도 저장이 안되야 하고요.
트렌젝션을 어떻게 걸어야 할지 몰라서 이렇게 했는데
TB_AA에 post를 한후에 TClientDataSet를 Close를 하니 당연히 뒤에꺼만 저장되는것 같아요.
그렇다고 Close를 안하면 TB_AA에 연결된 ClientDataSet를 TB_BB에 다시 연결할 수도 없고요.
이렇게 하다보니 TB_AA에는 저장이 안되고 TB_BB만 저장이 됩니다.