You've already forked lazarus-ccr
tvplanit: Activate "Apply to planner" button in sqlite3 datastore demo. Minor changes in some datastore demo project options.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5192 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -10,9 +10,6 @@
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
|
@ -10,9 +10,6 @@
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
|
@ -50,9 +50,9 @@ object Form1: TForm1
|
||||
Height = 652
|
||||
Top = 34
|
||||
Width = 980
|
||||
ActivePage = TabSheet1
|
||||
ActivePage = TabSheet3
|
||||
Align = alClient
|
||||
TabIndex = 0
|
||||
TabIndex = 2
|
||||
TabOrder = 1
|
||||
OnChange = PageControl1Change
|
||||
object TabSheet1: TTabSheet
|
||||
@ -270,12 +270,13 @@ object Form1: TForm1
|
||||
Options = []
|
||||
TabOrder = 0
|
||||
end
|
||||
object Button1: TButton
|
||||
object BtnApplyToPlanner: TButton
|
||||
Left = 264
|
||||
Height = 25
|
||||
Top = 8
|
||||
Width = 120
|
||||
Caption = 'Apply to planner'
|
||||
OnClick = BtnApplyToPlannerClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object TabControl1: TTabControl
|
||||
@ -323,7 +324,7 @@ object Form1: TForm1
|
||||
top = 264
|
||||
end
|
||||
object VpResourceEditDialog1: TVpResourceEditDialog
|
||||
Version = 'v1.04'
|
||||
Version = 'v1.05'
|
||||
DataStore = VpSqlite3Datastore1
|
||||
Options = []
|
||||
Placement.Position = mpCenter
|
||||
@ -474,6 +475,9 @@ object Form1: TForm1
|
||||
Precision = -1
|
||||
Size = 100
|
||||
end>
|
||||
AfterEdit = QryGridAfterEdit
|
||||
AfterInsert = QryGridAfterEdit
|
||||
AfterPost = QryGridAfterPost
|
||||
Database = SQLite3Connection1
|
||||
Transaction = SQLTransaction1
|
||||
SQL.Strings = (
|
||||
@ -481,6 +485,7 @@ object Form1: TForm1
|
||||
)
|
||||
Options = [sqoKeepOpenOnCommit, sqoAutoCommit]
|
||||
Params = <>
|
||||
UpdateMode = upWhereAll
|
||||
UsePrimaryKeyAsKey = False
|
||||
left = 560
|
||||
top = 160
|
||||
@ -665,13 +670,17 @@ object Form1: TForm1
|
||||
Precision = -1
|
||||
Size = 100
|
||||
end>
|
||||
AfterEdit = QryGridAfterEdit
|
||||
AfterInsert = QryGridAfterEdit
|
||||
AfterPost = QryGridAfterPost
|
||||
Database = SQLite3Connection1
|
||||
Transaction = SQLTransaction1
|
||||
SQL.Strings = (
|
||||
'SELECT * FROM Contacts'
|
||||
)
|
||||
Options = [sqoKeepOpenOnCommit, sqoAutoCommit]
|
||||
Options = [sqoKeepOpenOnCommit]
|
||||
Params = <>
|
||||
UpdateMode = upWhereAll
|
||||
UsePrimaryKeyAsKey = False
|
||||
left = 560
|
||||
top = 214
|
||||
@ -679,13 +688,17 @@ object Form1: TForm1
|
||||
object QryAllEvents: TSQLQuery
|
||||
PacketRecords = -1
|
||||
FieldDefs = <>
|
||||
AfterEdit = QryGridAfterEdit
|
||||
AfterInsert = QryGridAfterEdit
|
||||
AfterPost = QryGridAfterPost
|
||||
Database = SQLite3Connection1
|
||||
Transaction = SQLTransaction1
|
||||
SQL.Strings = (
|
||||
'SELECT * FROM Events'
|
||||
)
|
||||
Options = [sqoKeepOpenOnCommit, sqoAutoCommit]
|
||||
Options = [sqoKeepOpenOnCommit, sqoAutoApplyUpdates]
|
||||
Params = <>
|
||||
UpdateMode = upWhereAll
|
||||
UsePrimaryKeyAsKey = False
|
||||
left = 560
|
||||
top = 274
|
||||
@ -693,6 +706,9 @@ object Form1: TForm1
|
||||
object QryAllTasks: TSQLQuery
|
||||
PacketRecords = -1
|
||||
FieldDefs = <>
|
||||
AfterEdit = QryGridAfterPost
|
||||
AfterInsert = QryGridAfterEdit
|
||||
AfterPost = QryGridAfterPost
|
||||
Database = SQLite3Connection1
|
||||
Transaction = SQLTransaction1
|
||||
SQL.Strings = (
|
||||
@ -700,6 +716,7 @@ object Form1: TForm1
|
||||
)
|
||||
Options = [sqoKeepOpenOnCommit, sqoAutoCommit]
|
||||
Params = <>
|
||||
UpdateMode = upWhereAll
|
||||
UsePrimaryKeyAsKey = False
|
||||
left = 560
|
||||
top = 341
|
||||
|
@ -17,7 +17,7 @@ type
|
||||
TForm1 = class(TForm)
|
||||
BtnNewRes: TButton;
|
||||
BtnEditRes: TButton;
|
||||
Button1: TButton;
|
||||
BtnApplyToPlanner: TButton;
|
||||
DBNavigator: TDBNavigator;
|
||||
DsAllContacts: TDataSource;
|
||||
DsAllEvents: TDataSource;
|
||||
@ -50,10 +50,13 @@ type
|
||||
VpSqlite3Datastore1: TVpSqlite3Datastore;
|
||||
VpTaskList1: TVpTaskList;
|
||||
VpWeekView1: TVpWeekView;
|
||||
procedure BtnApplyToPlannerClick(Sender: TObject);
|
||||
procedure BtnNewResClick(Sender: TObject);
|
||||
procedure BtnEditResClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure PageControl1Change(Sender: TObject);
|
||||
procedure QryGridAfterEdit(DataSet: TDataSet);
|
||||
procedure QryGridAfterPost(DataSet: TDataSet);
|
||||
procedure TabControl1Change(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
@ -76,6 +79,31 @@ const
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.BtnApplyToPlannerClick(Sender: TObject);
|
||||
var
|
||||
resID: Integer;
|
||||
begin
|
||||
// Remember id of currently selected resource
|
||||
resID := VpSqlite3Datastore1.ResourceID;
|
||||
|
||||
// Since the datastore does not know about the changes made in the grid
|
||||
// we have to force the datastore to re-read everything.
|
||||
// Maybe there's better way...
|
||||
VpSqlite3Datastore1.Connected := false;
|
||||
VpSqlite3Datastore1.Connected := true;
|
||||
|
||||
// Return to previous resource
|
||||
VpSqlite3Datastore1.Resources.ClearResources;
|
||||
VpSqlite3Datastore1.Load;
|
||||
VpSqlite3Datastore1.ResourceID := resID;
|
||||
|
||||
// Don't forget to re-activate the grid's datasources
|
||||
QryAllResources.Open;
|
||||
QryAllEvents.Open;
|
||||
QryAllContacts.Open;
|
||||
QryAllTasks.Open;
|
||||
end;
|
||||
|
||||
// Adds a new resource
|
||||
procedure TForm1.BtnNewResClick(Sender: TObject);
|
||||
begin
|
||||
@ -93,6 +121,8 @@ end;
|
||||
// in the resource combo.
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
PageControl1.ActivePageIndex := 0;
|
||||
|
||||
try
|
||||
SQLite3Connection1.DatabaseName := AppendPathDelim(Application.Location) + DBFILENAME;
|
||||
SQLTransaction1.Action := caCommit;
|
||||
@ -119,10 +149,25 @@ begin
|
||||
if PageControl1.PageIndex = 2 then TabControl1Change(nil);
|
||||
end;
|
||||
|
||||
procedure TForm1.QryGridAfterEdit(DataSet: TDataSet);
|
||||
begin
|
||||
BtnApplyToPlanner.Enabled := false;
|
||||
end;
|
||||
|
||||
procedure TForm1.QryGridAfterPost(DataSet: TDataSet);
|
||||
begin
|
||||
// Note: UpdateMode must be upWhereAll! Otherwise there's an error "No update
|
||||
// query specified and failed to generate one. (No fields for inclusion in
|
||||
// where statement found)".
|
||||
// http://wiki.freepascal.org/SqlDBHowto#How_does_SqlDB_send_the_changes_to_the_database_server.3F
|
||||
TSQLQuery(Dataset).ApplyUpdates;
|
||||
SQLTransaction1.CommitRetaining;
|
||||
BtnApplyToPlanner.Enabled := true;
|
||||
end;
|
||||
|
||||
procedure TForm1.TabControl1Change(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
Datasource: TDataSource;
|
||||
begin
|
||||
DsAllResources.Dataset.Close;
|
||||
DsAllContacts.Dataset.Close;
|
||||
|
@ -65,6 +65,11 @@
|
||||
<Debugging>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
|
Reference in New Issue
Block a user