Componentes.Terceros.RemObj.../internal/6.0.43.801/1/Data Abstract for Delphi/Source/uDALocalHelpers.pas
2010-01-29 16:17:43 +00:00

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.