📄 valueobjectunit.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -