git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@68 b6239004-a887-0f4b-9937-50029ccdca16
59 lines
2.6 KiB
ObjectPascal
59 lines
2.6 KiB
ObjectPascal
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. |