📄 datamoudle.pas
字号:
{ =================== }
{ 客户端数据模块 }
{ =================== }
{ 《学籍管理系统》--作者:贺广兵 }
{ }
{ 可以通过 TLIENTDATASET 和 TDATASETPROVIDER 传递数据表主键键值来 }
{ 实现无状态对象和按数据包定量下载数据,但却违反了本系统 的可移植 }
{ 性。代码如下,但本系统只列出了代码并没有实现。 }
{ }
{**********************************************************************}
unit DataMoudle;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBClient, MConnect, ObjBrkr, SConnect;
type
TDataModule1 = class(TDataModule)
ClientDataSet1: TClientDataSet;
ClientDataSouce: TDataSource;
SimpleObjectBroker1: TSimpleObjectBroker;
SocketConnection1: TSocketConnection;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
procedure ClientDataSet1ReconcileError(DataSet: TClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
procedure ClientDataSet1BeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
private
{ Private declarations }
public
function GetKeyFieldValue(Sender:TObject):OleVariant;
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
uses
MainForm, ErrorDlg;
{$R *.DFM}
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
With ClientMainForm do
begin
DBGrid1.DataSource:=ClientDataSouce;
end;
end;
procedure TDataModule1.DataModuleDestroy(Sender: TObject);
begin
ClientDataset1.Active:=False;
//DCOMConnection1.Connected:=False;
SocketConnection1.Connected:=False;
end;
procedure TDataModule1.ClientDataSet1ReconcileError(
DataSet: TClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin
HandleReconcileError(DataSet,UpdateKind,E); //调用更新错误处理模块
end;
procedure TDataModule1.ClientDataSet1BeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
begin
{ if ((VarIsEmpty(VOwnerData)) or (VarIsNull(VOwnerData)))then
VOwnerData:=GetKeyFieldValue(Sender);
OwnerData:=VOwnerdata; }
end;
function TDataModule1.GetKeyFieldValue(Sender: TObject): OleVariant;
//var
//CurRecord:TBookMark;
begin
{ if ServerLinked then
begin
try
with Sender as TClientDataSet do
begin
CurRecord:=GetBookMark;
try
Last;
Result:=FieldByName('系号').Value;
GotoBookMark(CurRecord);
finally
FreeBookMark(CurRecord);
end;
end;
except on E:Exception do;
end;
end; }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -