utdmadodemoobject.~pas
来自「Delphi开发webservice的一套例子」· ~PAS 代码 · 共 108 行
~PAS
108 行
unit utdmADODemoObject;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
MtsRdm, Mtx, PDelphiADODemo_TLB, Provider, DB, ADODB;
type
TADODemoServer = class(TMtsDataModule, IADODemoServer)
adocnDemoDB: TADOConnection;
adodsEssays: TADODataSet;
dspEssays: TDataSetProvider;
cdsEssays: TClientDataSet;
procedure MtsDataModuleActivate(Sender: TObject);
procedure MtsDataModuleDeactivate(Sender: TObject);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
procedure QueryData(const sSQLCommand: WideString; var sData: OleVariant);
safecall;
procedure UpdateData(const sData: WideString; var iErrorCount: Integer);
safecall;
public
{ Public declarations }
end;
var
ADODemoServer: TADODemoServer;
implementation
{$R *.DFM}
class procedure TADODemoServer.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 TADODemoServer.MtsDataModuleActivate(Sender: TObject);
begin
Self.adocnDemoDB.Connected := True;
end;
procedure TADODemoServer.MtsDataModuleDeactivate(Sender: TObject);
begin
Self.adocnDemoDB.Connected := False;
end;
procedure TADODemoServer.QueryData(const sSQLCommand: WideString;
var sData: OleVariant);
begin
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;
end; // try/finally
end;
procedure TADODemoServer.UpdateData(const sData: WideString;
var iErrorCount: Integer);
begin
cdsEssays.Active := False;
try
cdsEssays.XMLData := sData;
try
cdsEssays.Active := True;
iErrorCount := cdsEssays.ApplyUpdates(0);
SetComplete;
except
on e: Exception do
SetAbort;
end;
finally // wrap up
cdsEssays.Active := False;
end; // try/finally
end;
initialization
TComponentFactory.Create(ComServer, TADODemoServer,
Class_ADODemoServer, ciMultiInstance, tmBoth);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?