utdmdelphiadoserver.~pas

来自「Delphi开发webservice的一套例子」· ~PAS 代码 · 共 80 行

~PAS
80
字号
unit utdmDelphiADOServer;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
  MtsRdm, Mtx, PDelphiADOServer_TLB, Provider, DB, ADODB;

type
  TtdmADOServer = class(TMtsDataModule, IDelphiADOServer)
    adocnDemoDB: TADOConnection;
    adodsEssays: TADODataSet;
    dspEssays: TDataSetProvider;
    cdsEssays: TClientDataSet;
  private
    { Private declarations }
  protected
    class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
    procedure QueryData(const sSQLCommand: WideString; var sData: OleVariant);
      safecall;
  public
    { Public declarations }
  end;

var
  tdmADOServer: TtdmADOServer;

implementation

{$R *.DFM}

class procedure TtdmADOServer.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
  if Register then
  begin
    inherited UpdateRegistry(Register, ClassID, ProgID);
    EnableSocketTransport(ClassID);
    EnableWebTransport(ClassID);
  end else
  begin
    DisableSocketTransport(ClassID);
    DisableWebTransport(ClassID);
    inherited UpdateRegistry(Register, ClassID, ProgID);
  end;
end;

procedure TtdmADOServer.QueryData(const sSQLCommand: WideString;
  var sData: OleVariant);
begin
  sData := 'Test';
{
  Self.adocnDemoDB.Connected := True;
  cdsEssays.Active := False;
  try
    cdsEssays.CommandText := sSQLCommand;
    try
      cdsEssays.Active := True;
      sData := cdsEssays.XMLData;
      SetComplete;
    except
      on e: Exception do
      begin
        sData := '';
        SetAbort;
      end;
    end;
  finally // wrap up
    cdsEssays.Active := False;
    Self.adocnDemoDB.Connected := False;
  end;    // try/finally
}
end;

initialization
  TComponentFactory.Create(ComServer, TtdmADOServer,
    Class_tdmADOServer, ciMultiInstance, tmApartment);
end.

⌨️ 快捷键说明

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