You've already forked lazarus-ccr
tvplanit: Add property Persistent to BufDSDatastore
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4924 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -19,7 +19,9 @@ type
|
|||||||
FTasksTable: TBufDataset;
|
FTasksTable: TBufDataset;
|
||||||
FDirectory: String;
|
FDirectory: String;
|
||||||
FUseAutoInc: Boolean;
|
FUseAutoInc: Boolean;
|
||||||
|
FPersistent: Boolean;
|
||||||
procedure SetDirectory(AValue: String);
|
procedure SetDirectory(AValue: String);
|
||||||
|
procedure SetPersistent(AValue: Boolean);
|
||||||
procedure SetUseAutoInc(AValue: Boolean);
|
procedure SetUseAutoInc(AValue: Boolean);
|
||||||
|
|
||||||
protected
|
protected
|
||||||
@ -51,9 +53,10 @@ type
|
|||||||
property TasksTable;
|
property TasksTable;
|
||||||
|
|
||||||
published
|
published
|
||||||
property Directory: String read FDirectory write SetDirectory;
|
|
||||||
property AutoConnect;
|
property AutoConnect;
|
||||||
property AutoCreate;
|
property AutoCreate;
|
||||||
|
property Directory: String read FDirectory write SetDirectory;
|
||||||
|
property Persistent: Boolean read FPersistent write SetPersistent default true;
|
||||||
property UseAutoIncFields: Boolean read FUseAutoInc write SetUseAutoInc default true;
|
property UseAutoIncFields: Boolean read FUseAutoInc write SetUseAutoInc default true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -74,6 +77,7 @@ begin
|
|||||||
FEventsTable := TBufDataset.Create(nil);
|
FEventsTable := TBufDataset.Create(nil);
|
||||||
FContactsTable := TBufDataset.Create(nil);
|
FContactsTable := TBufDataset.Create(nil);
|
||||||
FTasksTable := TBufDataset.Create(nil);
|
FTasksTable := TBufDataset.Create(nil);
|
||||||
|
FPersistent := true;
|
||||||
FUseAutoInc := true;
|
FUseAutoInc := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -123,8 +127,9 @@ begin
|
|||||||
raise Exception.CreateFmt('TableName "%s" cannot be processed.', [ATableName]);
|
raise Exception.CreateFmt('TableName "%s" cannot be processed.', [ATableName]);
|
||||||
|
|
||||||
table.Close;
|
table.Close;
|
||||||
table.FileName := dir + ATableName + TABLE_EXT;
|
if FPersistent then
|
||||||
if not FileExists(table.FileName) then
|
table.FileName := dir + ATableName + TABLE_EXT;
|
||||||
|
if ((not FPersistent) or (not FileExists(table.FileName))) and (table.FieldDefs.Count = 0) then
|
||||||
begin
|
begin
|
||||||
CreateFieldDefs(ATableName, table.FieldDefs);
|
CreateFieldDefs(ATableName, table.FieldDefs);
|
||||||
if FUseAutoInc then
|
if FUseAutoInc then
|
||||||
@ -217,6 +222,24 @@ begin
|
|||||||
FDirectory := AValue;
|
FDirectory := AValue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TVpBufDSDatastore.SetPersistent(AValue: Boolean);
|
||||||
|
var
|
||||||
|
wasConn: Boolean;
|
||||||
|
begin
|
||||||
|
if AValue <> FPersistent then begin
|
||||||
|
wasConn := Connected;
|
||||||
|
Connected := false;
|
||||||
|
FPersistent := AValue;
|
||||||
|
if not FPersistent then begin
|
||||||
|
FResourceTable.FileName := '';
|
||||||
|
FEventsTable.FileName := '';
|
||||||
|
FContactsTable.FileName := '';
|
||||||
|
FTasksTable.FileName := '';
|
||||||
|
end;
|
||||||
|
Connected := wasConn;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TVpBufDSDatastore.SetUseAutoInc(AValue: Boolean);
|
procedure TVpBufDSDatastore.SetUseAutoInc(AValue: Boolean);
|
||||||
var
|
var
|
||||||
dir: String;
|
dir: String;
|
||||||
|
Reference in New Issue
Block a user