pas2js/demo/dataabstract/server/DataService_Impl.pas
2020-09-13 08:06:34 +00:00

81 lines
2.2 KiB
ObjectPascal

unit DataService_Impl;
{$I RemObjects.inc}
interface
uses
System.SysUtils, System.Classes, System.TypInfo, uROEncoding, uROXMLIntf,
uROClientIntf, uROClasses, uROTypes, uROServer, uROServerIntf, uROSessions,
uRORemoteDataModule, uDAInterfaces, uDAServerInterfaces, uDADelta,
uDABusinessProcessor, uDASchema, DataAbstractService_Impl, DataAbstract4_Intf,
DAServer_Intf, uROComponent, uDAStreamableComponent, uDAClientSchema,
uDAFields, uDADataStreamer, uDABin2DataStreamer, uDACore, uDASchemaClasses,
uDAScriptingProvider;
const
__ServiceName = 'DataService';
type
{ Forward declarations }
TDataService = class;
TDataService = class(TDataAbstractService, IDataService)
dsBin: TDABin2DataStreamer;
DABusinessProcessor1: TDABusinessProcessor;
Schema: TDASchema;
procedure DABusinessProcessor1BeforeProcessChange(
Sender: TDABusinessProcessor; aChangeType: TDAChangeType;
aChange: TDADeltaChange; var ProcessChange: Boolean);
private
end;
implementation
{$IFDEF DELPHIXE2UP}
{%CLASSGROUP 'Vcl.Controls.TControl'}
{$ENDIF}
{$IFNDEF FPC}
{$R *.dfm}
{$ENDIF}
{$IFDEF FPC}
{$R *.lfm}
{$ENDIF}
uses
Variants,DAServer_Invk, Modules.Server;
var
FDataService: IROClassFactory;
procedure Create_DataService(out anInstance: IInterface);
begin
anInstance := TDataService.Create(nil);
end;
{ TBaseService }
procedure TDataService.DABusinessProcessor1BeforeProcessChange(
Sender: TDABusinessProcessor; aChangeType: TDAChangeType;
aChange: TDADeltaChange; var ProcessChange: Boolean);
begin
if aChangeType in [ctInsert,ctUpdate] then
begin
if not VarIsNull(aChange.NewValueByName['ISO']) then
aChange.NewValueByName['ISO']:=UpperCase(aChange.NewValueByName['ISO']);
if not VarIsNull(aChange.NewValueByName['ISO3']) then
aChange.NewValueByName['ISO3']:=UpperCase(aChange.NewValueByName['ISO3']);
end;
ProcessChange:=True;
end;
initialization
FDataService := TROClassFactory.Create(__ServiceName, {$IFDEF FPC}@{$ENDIF}Create_DataService, TDataService_Invoker);
// RegisterForZeroConf(FBaseService, '_BaseService_rosdk._tcp.');
finalization
UnRegisterClassFactory(FDataService);
FDataService := nil;
end.