valueobjectunit.pas
来自「随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太」· PAS 代码 · 共 128 行
PAS
128 行
unit ValueObjectUnit;
interface
uses
Classes, DB, DBClient, Contnrs, Variants, SysUtils, Dialogs;
type
PTValueObject = ^TValueObject;
TValueObject= class(TPersistent)
private
b_insertFlag: Boolean;
b_updateFlag: Boolean;
b_deleteFlag: Boolean;
d_rowVersion: Integer;
s_Primarykey: string;
procedure setInsertFlag(pInsertFlag :Boolean);
function getInsertFlag: Boolean;
procedure setUpdateFlag(pUpdateFlag :Boolean);
function getUpdateFlag: Boolean;
procedure setDeleteFlag(pDeleteFlag :Boolean);
function getDeleteFlag: Boolean;
procedure setRowVersion(pRowVersion :Integer);
function getRowVersion: Integer;
procedure setPrimarykey(pPrimarykey :String);
function getPrimarykey: String;
protected
function GetOLEData: OleVariant; virtual;
procedure SetOLEData(Value: OleVariant); virtual;
function GetVOObject(value: OleVariant): TValueObject; virtual; abstract;
published
property pInsertFlag: Boolean read getInsertFlag write setInsertFlag;
property pUpdateFlag: Boolean read getUpdateFlag write setUpdateFlag;
property pDeleteFlag: Boolean read getDeleteFlag write setDeleteFlag;
property pRowVersion: Integer read getRowVersion write setRowVersion;
property pPrimarykey: String read getPrimarykey write setPrimarykey;
//外部接口:
property POLEData: OleVariant read GetOLEData write SetOLEData;
end;
implementation
procedure TValueObject.setInsertFlag(pInsertFlag :Boolean);
begin
b_insertFlag := pInsertFlag;
b_updateFlag := false;
b_deleteFlag := false;
end;
function TValueObject.getInsertFlag: Boolean;
begin
Result := b_insertFlag;
end;
procedure TValueObject.setUpdateFlag(pUpdateFlag :Boolean);
begin
b_updateFlag := pUpdateFlag;
b_insertFlag := false;
b_deleteFlag := false;
end;
function TValueObject.getUpdateFlag: Boolean;
begin
Result := b_updateFlag;
end;
procedure TValueObject.setDeleteFlag(pDeleteFlag :Boolean);
begin
b_deleteFlag := pDeleteFlag;
b_insertFlag := false;
b_updateFlag := false;
end;
function TValueObject.getDeleteFlag: Boolean;
begin
Result := b_deleteFlag;
end;
procedure TValueObject.setRowVersion(pRowVersion :Integer);
begin
d_rowVersion := pRowVersion;
end;
function TValueObject.getRowVersion: Integer;
begin
Result := d_rowVersion;
end;
procedure TValueObject.setPrimarykey(pPrimarykey :String);
begin
s_Primarykey := pPrimaryKey;
end;
function TValueObject.getPrimarykey: String;
begin
Result := s_Primarykey;
end;
function TValueObject.GetOLEData: OleVariant;
begin
Result := VarArrayCreate([0,2], varVariant);
Result[0] := pInsertFlag;
Result[1] := pUpdateFlag;
Result[2] := pDeleteFlag;
end;
procedure TValueObject.SetOLEData(Value: OleVariant);
begin
if VarIsArray(Value) then
begin pInsertFlag := Value[0]; pUpdateFlag := Value[1]; pDeleteFlag := Value[2]; end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?