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:
wp_xxyyzz
2016-09-20 12:11:11 +00:00
parent 35f2a69be0
commit f64f85da78
5 changed files with 75 additions and 14 deletions

View File

@ -10,9 +10,6 @@
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
</General>
<VersionInfo>
<StringTable ProductVersion=""/>
</VersionInfo>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>

View File

@ -10,9 +10,6 @@
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
</General>
<VersionInfo>
<StringTable ProductVersion=""/>
</VersionInfo>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>

View File

@ -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

View File

@ -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;

View File

@ -65,6 +65,11 @@
<Debugging>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
<Debugging>