⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server_tlb.pas

📁 Delphi6分布式开发例程10 )
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  // --------------
  published
  end;

procedure Register;

implementation

uses ComObj;

class function CoPooledRDM.Create: IPooledRDM;
begin
  Result := CreateComObject(CLASS_PooledRDM) as IPooledRDM;
end;

class function CoPooledRDM.CreateRemote(const MachineName: string): IPooledRDM;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_PooledRDM) as IPooledRDM;
end;

procedure TPooledRDM.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{0CE99802-9F28-11D1-8944-00A0248E5091}';
    IntfIID:   '{0CE99801-9F28-11D1-8944-00A0248E5091}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TPooledRDM.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IPooledRDM;
  end;
end;

procedure TPooledRDM.DisConnect;
begin
  FIntf := nil;
end;


function TPooledRDM.GetDefaultInterface: IPooledRDM;
begin
  Connect;
  Result := FIntf;
end;

function  TPooledRDM.AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant; 
                                     MaxErrors: Integer; out ErrorCount: Integer; 
                                     var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData);
end;

function  TPooledRDM.AS_GetRecords(const ProviderName: WideString; Count: Integer; 
                                   out RecsOut: Integer; Options: Integer; 
                                   const CommandText: WideString; var Params: OleVariant; 
                                   var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText, 
                                           Params, OwnerData);
end;

function  TPooledRDM.AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_DataRequest(ProviderName, Data);
end;

function  TPooledRDM.AS_GetProviderNames: OleVariant;
begin
  Result := DefaultInterface.AS_GetProviderNames;
end;

function  TPooledRDM.AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_GetParams(ProviderName, OwnerData);
end;

function  TPooledRDM.AS_RowRequest(const ProviderName: WideString; Row: OleVariant; 
                                   RequestType: Integer; var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_RowRequest(ProviderName, Row, RequestType, OwnerData);
end;

procedure TPooledRDM.AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
                                var Params: OleVariant; var OwnerData: OleVariant);
begin
  DefaultInterface.AS_Execute(ProviderName, CommandText, Params, OwnerData);
end;

class function CoPooler.Create: IPooledRDM;
begin
  Result := CreateComObject(CLASS_Pooler) as IPooledRDM;
end;

class function CoPooler.CreateRemote(const MachineName: string): IPooledRDM;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_Pooler) as IPooledRDM;
end;

procedure TPooler.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{0CE99804-9F28-11D1-8944-00A0248E5091}';
    IntfIID:   '{0CE99801-9F28-11D1-8944-00A0248E5091}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TPooler.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IPooledRDM;
  end;
end;

procedure TPooler.DisConnect;
begin
  FIntf := nil;
end;


function TPooler.GetDefaultInterface: IPooledRDM;
begin
  Connect;
  Result := FIntf;
end;

function  TPooler.AS_ApplyUpdates(const ProviderName: WideString; Delta: OleVariant; 
                                  MaxErrors: Integer; out ErrorCount: Integer; 
                                  var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData);
end;

function  TPooler.AS_GetRecords(const ProviderName: WideString; Count: Integer; 
                                out RecsOut: Integer; Options: Integer; 
                                const CommandText: WideString; var Params: OleVariant; 
                                var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText, 
                                           Params, OwnerData);
end;

function  TPooler.AS_DataRequest(const ProviderName: WideString; Data: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_DataRequest(ProviderName, Data);
end;

function  TPooler.AS_GetProviderNames: OleVariant;
begin
  Result := DefaultInterface.AS_GetProviderNames;
end;

function  TPooler.AS_GetParams(const ProviderName: WideString; var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_GetParams(ProviderName, OwnerData);
end;

function  TPooler.AS_RowRequest(const ProviderName: WideString; Row: OleVariant; 
                                RequestType: Integer; var OwnerData: OleVariant): OleVariant;
begin
  Result := DefaultInterface.AS_RowRequest(ProviderName, Row, RequestType, OwnerData);
end;

procedure TPooler.AS_Execute(const ProviderName: WideString; const CommandText: WideString; 
                             var Params: OleVariant; var OwnerData: OleVariant);
begin
  DefaultInterface.AS_Execute(ProviderName, CommandText, Params, OwnerData);
end;

procedure Register;
begin
  RegisterComponents('Servers',[TPooledRDM, TPooler]);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -