utdmdelphi6adoserver.pas
来自「Delphi开发webservice的一套例子」· PAS 代码 · 共 100 行
PAS
100 行
unit utdmDelphi6ADOServer;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
MtsRdm, Mtx, PDelphi6ADOServer_TLB, Provider, DB, ADODB;
type
TDelphi6ADOServer = class(TMtsDataModule, IDelphi6ADOServer)
adocDBDemos: TADOConnection;
adodsEmployee: TADODataSet;
dspEmployee: TDataSetProvider;
cdsEmployee: TClientDataSet;
procedure MtsDataModuleActivate(Sender: TObject);
procedure MtsDataModuleDeactivate(Sender: TObject);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
procedure QueryMyData(const sSQLCommand: WideString;
var vData: OleVariant); safecall;
procedure UpdateMyData(const sData: WideString; var lErrorCount: Integer);
safecall;
public
{ Public declarations }
end;
var
Delphi6ADOServer: TDelphi6ADOServer;
implementation
{$R *.DFM}
class procedure TDelphi6ADOServer.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 TDelphi6ADOServer.MtsDataModuleActivate(Sender: TObject);
begin
Self.adocDBDemos.Connected := True;
end;
procedure TDelphi6ADOServer.MtsDataModuleDeactivate(Sender: TObject);
begin
Self.adocDBDemos.Connected := False;
end;
procedure TDelphi6ADOServer.QueryMyData(const sSQLCommand: WideString;
var vData: OleVariant);
begin
Self.cdsEmployee.Active := False;
Self.cdsEmployee.CommandText := sSQLCommand;
try
try
Self.cdsEmployee.Active := True;
vData := Self.cdsEmployee.XMLData;
finally
Self.cdsEmployee.Active := False;
end;
SetComplete;
except
on Exception do
SetAbort;
end;
end;
procedure TDelphi6ADOServer.UpdateMyData(const sData: WideString;
var lErrorCount: Integer);
begin
try
Self.cdsEmployee.Active := False;
Self.cdsEmployee.XMLData := sData;
lErrorCount := Self.cdsEmployee.ApplyUpdates(0);
SetComplete;
except
on Exception do
SetAbort;
end;
end;
initialization
TComponentFactory.Create(ComServer, TDelphi6ADOServer,
Class_Delphi6ADOServer, ciMultiInstance, tmApartment);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?