Componentes.Terceros.RemObj.../official/5.0.24.615/Data Abstract for Delphi/Samples/Business Processor/BusinessProcessorClientData.pas

87 lines
3.0 KiB
ObjectPascal

unit BusinessProcessorClientData;
interface
uses
{vcl:} SysUtils, Classes, DB, DBClient, Variants,
{RemObjects:} uROClient, uROClientIntf, uRORemoteService, uROBinMessage, uROWinInetHTTPChannel,
{Data Abstract:} uDADataTable, uDABINAdapter, uDAInterfaces,
uDADataStreamer, uDARemoteDataAdapter, uDAScriptingProvider,
uDACDSDataTable, uDADelta;
type
TBusinessProcessorClientDataModule = class(TDataModule)
Message: TROBinMessage;
Channel: TROWinInetHTTPChannel;
RemoteService: TRORemoteService;
DataStreamer: TDABinDataStreamer;
RemoteDataAdapter: TDARemoteDataAdapter;
tbl_Customers: TDACDSDataTable;
ds_Customers: TDADataSource;
tbl_Orders: TDACDSDataTable;
ds_Orders: TDADataSource;
procedure RemoteDataAdapterGenerateRecordMessage(Sender: TObject;
aChange: TDADeltaChange; ADatatable: TDADataTable;
var aMessage: string);
procedure RemoteDataAdapterShowReconcileRecordInAppUI(Sender: TObject;
aChange: TDADeltaChange; aDatatable: TDADataTable;
var aHandled: Boolean; var aAction: TDAReconcileDialogAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
BusinessProcessorClientDataModule: TBusinessProcessorClientDataModule;
implementation
uses BusinessProcessorClientUnit1;
{$R *.dfm}
procedure TBusinessProcessorClientDataModule.RemoteDataAdapterGenerateRecordMessage(
Sender: TObject; aChange: TDADeltaChange; ADatatable: TDADataTable;
var aMessage: string);
var
i: integer;
begin
aMessage := 'A problem occured while ';
case achange.ChangeType of
ctInsert: aMessage := aMessage + 'inserting';
ctUpdate: aMessage := aMessage + 'updating';
ctDelete: aMessage := aMessage + 'deleting';
end;
aMessage := aMessage + ' a record in table "' + ADatatable.LogicalName + '"';
if ADatatable = tbl_Customers then begin
aMessage := aMessage + ' , CustomerID = ''';
if aChange.ChangeType = ctInsert then
aMessage := aMessage + VarToStr(aChange.NewValueByName['CustomerID']) + ''''
else
aMessage := aMessage + VarToStr(aChange.OldValueByName['CustomerID']) + '''';
end
else begin
aMessage := aMessage + ' , OrderID = ''';
if aChange.ChangeType = ctInsert then
aMessage := aMessage + VarToStr(aChange.NewValueByName['OrderID']) + ''''
else
aMessage := aMessage + VarToStr(aChange.OldValueByName['OrderID']) + '''';
end;
i := pos(sLineBreak, aChange.Message);
if i = 0 then
aMessage := aMessage + sLineBreak + sLineBreak + aChange.Message
else
aMessage := aMessage + sLineBreak + sLineBreak + copy(aChange.Message, 1, i - 1);
end;
procedure TBusinessProcessorClientDataModule.RemoteDataAdapterShowReconcileRecordInAppUI(
Sender: TObject; aChange: TDADeltaChange; aDatatable: TDADataTable;
var aHandled: Boolean; var aAction: TDAReconcileDialogAction);
begin
BusinessProcessorClientUnit1.ReconcileDialogShowDetails(aChange, ADatatable, AAction);
AHandled := True;
end;
end.