unit uDALocalHelpers; {----------------------------------------------------------------------------} { Data Abstract Library - Core Library } { } { compiler: Delphi 6 and up, Lazarus/FPC } { platform: Win32, Unux, Mac } { } { (c)opyright RemObjects Software. all rights reserved. } { } { Using this code requires a valid license of the Data Abstract } { which can be obtained at http://www.remobjects.com. } {----------------------------------------------------------------------------} {$I DataAbstract.inc} interface uses DataAbstract4_Intf, uDADelta, uDADataStreamer; type IDeltaArray = array of IDADelta; IDataAbstractLocalServiceAccess = interface ['{72319FE4-BCE3-4C89-96BD-36A450F75241}'] procedure UpdateData(aDeltaList: IDeltaArray); function GetSchema(const aFilter: UTF8String): UTF8String; procedure GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray; aStreamer: TDADataStreamer); function GetDatasetScripts(const DatasetNames: Utf8String): Utf8String; function ExecuteCommandEx(const aCommandName: String; const aInputParameters: DataParameterArray; out aOutputParameters: DataParameterArray):integer; end; function LocalServiceAccessHelper_Acquire(aGuid: TGuid; aName: String): IDataAbstractLocalServiceAccess; procedure LocalServiceAccessHelper_Release(aGuid: TGuid; aName: String; aService: IDataAbstractLocalServiceAccess); implementation uses uROServer, uROServerIntf, uRORes, uROClasses; function LocalServiceAccessHelper_Acquire(aGuid: TGuid; aName: String): IDataAbstractLocalServiceAccess; var lLocal: IUnknown; begin GetClassFactory(aName).CreateInstance(aGuid, lLocal); if (lLocal = nil) then RaiseError(err_ClassFactoryDidNotReturnInstance, [aName]); Result := lLocal as IDataAbstractLocalServiceAccess; lLocal := nil; if Result <> nil then (Result as IROObjectActivation).OnActivate(aGuid,nil); end; procedure LocalServiceAccessHelper_Release(aGuid: TGuid; aName: String; aService: IDataAbstractLocalServiceAccess); var lLocal: IUnknown; begin lLocal := aService; if lLocal <> nil then (lLocal as IROObjectActivation).OnDeactivate(aGuid); GetClassFactory(aName).ReleaseInstance(aGuid, lLocal); end; end.