DataService_Impl.pas 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. unit DataService_Impl;
  2. {$I RemObjects.inc}
  3. interface
  4. uses
  5. System.SysUtils, System.Classes, System.TypInfo, uROEncoding, uROXMLIntf,
  6. uROClientIntf, uROClasses, uROTypes, uROServer, uROServerIntf, uROSessions,
  7. uRORemoteDataModule, uDAInterfaces, uDAServerInterfaces, uDADelta,
  8. uDABusinessProcessor, uDASchema, DataAbstractService_Impl, DataAbstract4_Intf,
  9. DAServer_Intf, uROComponent, uDAStreamableComponent, uDAClientSchema,
  10. uDAFields, uDADataStreamer, uDABin2DataStreamer, uDACore, uDASchemaClasses,
  11. uDAScriptingProvider;
  12. const
  13. __ServiceName = 'DataService';
  14. type
  15. { Forward declarations }
  16. TDataService = class;
  17. TDataService = class(TDataAbstractService, IDataService)
  18. dsBin: TDABin2DataStreamer;
  19. DABusinessProcessor1: TDABusinessProcessor;
  20. Schema: TDASchema;
  21. procedure DABusinessProcessor1BeforeProcessChange(
  22. Sender: TDABusinessProcessor; aChangeType: TDAChangeType;
  23. aChange: TDADeltaChange; var ProcessChange: Boolean);
  24. private
  25. end;
  26. implementation
  27. {$IFDEF DELPHIXE2UP}
  28. {%CLASSGROUP 'Vcl.Controls.TControl'}
  29. {$ENDIF}
  30. {$IFNDEF FPC}
  31. {$R *.dfm}
  32. {$ENDIF}
  33. {$IFDEF FPC}
  34. {$R *.lfm}
  35. {$ENDIF}
  36. uses
  37. Variants,DAServer_Invk, Modules.Server;
  38. var
  39. FDataService: IROClassFactory;
  40. procedure Create_DataService(out anInstance: IInterface);
  41. begin
  42. anInstance := TDataService.Create(nil);
  43. end;
  44. { TBaseService }
  45. procedure TDataService.DABusinessProcessor1BeforeProcessChange(
  46. Sender: TDABusinessProcessor; aChangeType: TDAChangeType;
  47. aChange: TDADeltaChange; var ProcessChange: Boolean);
  48. begin
  49. if aChangeType in [ctInsert,ctUpdate] then
  50. begin
  51. if not VarIsNull(aChange.NewValueByName['ISO']) then
  52. aChange.NewValueByName['ISO']:=UpperCase(aChange.NewValueByName['ISO']);
  53. if not VarIsNull(aChange.NewValueByName['ISO3']) then
  54. aChange.NewValueByName['ISO3']:=UpperCase(aChange.NewValueByName['ISO3']);
  55. end;
  56. ProcessChange:=True;
  57. end;
  58. initialization
  59. FDataService := TROClassFactory.Create(__ServiceName, {$IFDEF FPC}@{$ENDIF}Create_DataService, TDataService_Invoker);
  60. // RegisterForZeroConf(FBaseService, '_BaseService_rosdk._tcp.');
  61. finalization
  62. UnRegisterClassFactory(FDataService);
  63. FDataService := nil;
  64. end.