Not how that applies to what I am asking. In our Asta programs, we combined all the datasets into a single transaction set to be sent as a single transaction back to the server. If the transaction failed for whatever reason, the complete set of dataset posts were all rolled back.
This is what we are trying to accomplish with DA. How would we do that?
In the example code below from our ASTA program, we are sending everything for three tables ReceiptMaster, ReceiptDetail, and ArOpenReceivables. One transaction set. The Asta client socket had a SendDataSetTransctions function for combining the tables into a single transaction commit.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure Tsc_ArReceipts.ProcessTransactions;
begin
{
if ButtonAction = mrOk then
begin
try
ta_ReceiptDetail.MasterSource := nil;
Sysfunction.AstaClientSocket.SendDataSetTransactions(
'CustomerReceiptsEntry', [ ta_ReceiptMaster, ta_ReceiptDetail, ta_ArOpen ] );
ta_ReceiptDetail.MasterSource := ds_ReceiptMaster;
except
ShowMessage( 'Problem in completing the Customer Receipt Entry transactions. Entries rolled back.' );
ta_ReceiptDetail.CancelUpdates;
ta_ReceiptMaster.CancelUpdates;
ta_ArOpen.CancelUpdates;
ta_ReceiptDetail.MasterSource := ds_ReceiptMaster;
end;
end
else
begin
ta_ReceiptDetail.CancelUpdates;
ta_ReceiptMaster.CancelUpdates;
ta_ArOpen.CancelUpdates;
end;
}
end;
////////////////////////////////////////////////////////////////////////////////