📄 remotedatamodule.pas
字号:
unit RemoteDataModule;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, StatelessServer_TLB, StdVcl, DBXpress, FMTBcd, DB, SqlExpr,
Provider, Variants;
type
TStatelessServerData = class(TRemoteDataModule, IStatelessServerData)
conn: TSQLConnection;
sqlContacts: TSQLDataSet;
pvContacts: TDataSetProvider;
procedure pvContactsGetData(Sender: TObject;
DataSet: TCustomClientDataSet);
procedure pvContactsAfterGetRecords(Sender: TObject;
var OwnerData: OleVariant);
procedure pvContactsBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;
implementation
{$R *.DFM}
class procedure TStatelessServerData.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 TStatelessServerData.pvContactsGetData(Sender: TObject;
DataSet: TCustomClientDataSet);
begin
DataSet.Last;
pvContacts.Tag := DataSet.FieldByName('ID').AsInteger;
end;
procedure TStatelessServerData.pvContactsAfterGetRecords(Sender: TObject;
var OwnerData: OleVariant);
begin
OwnerData := pvContacts.Tag;
end;
procedure TStatelessServerData.pvContactsBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
begin
if not VarIsEmpty(OwnerData) then begin
sqlContacts.Params.ParamValues['MinID'] := OwnerData;
sqlContacts.Refresh;
end else begin
sqlContacts.Params.ParamValues['MinID'] := 0;
// sqlContacts.Open;
end;
end;
initialization
TComponentFactory.Create(ComServer, TStatelessServerData,
Class_StatelessServerData, ciMultiInstance, tmApartment);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -