ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/ibinsertsqleditor.pas
Revision: 315
Committed: Thu Feb 25 11:56:36 2021 UTC (3 years, 1 month ago) by tony
Content type: text/x-pascal
File size: 3600 byte(s)
Log Message:
Updated for IBX 4 release

File Contents

# Content
1 (*
2 * IBX For Lazarus (Firebird Express)
3 *
4 * The contents of this file are subject to the Initial Developer's
5 * Public License Version 1.0 (the "License"); you may not use this
6 * file except in compliance with the License. You may obtain a copy
7 * of the License here:
8 *
9 * http://www.firebirdsql.org/index.php?op=doc&id=idpl
10 *
11 * Software distributed under the License is distributed on an "AS
12 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
13 * implied. See the License for the specific language governing rights
14 * and limitations under the License.
15 *
16 * The Initial Developer of the Original Code is Tony Whyman.
17 *
18 * The Original Code is (C) 2011 Tony Whyman, MWA Software
19 * (http://www.mwasoftware.co.uk).
20 *
21 * All Rights Reserved.
22 *
23 * Contributor(s): ______________________________________.
24 *
25 *)
26 unit ibinsertsqleditor;
27
28 {$mode objfpc}{$H+}
29
30 interface
31
32 uses
33 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
34 StdCtrls, ComCtrls, ibselectsqleditor, IBSQLEditFrame, IBDatabase,
35 IBDynamicGrid, IBCustomDataSet;
36
37 type
38
39 { TIBInsertSQLEditorForm }
40
41 TIBInsertSQLEditorForm = class(TIBSelectSQLEditorForm)
42 IdentityGrid: TIBDynamicGrid;
43 Label5: TLabel;
44 Label6: TLabel;
45 ReadOnlyGrid: TIBDynamicGrid;
46 procedure GenerateBtnClick(Sender: TObject);
47 procedure IdentityGridDblClick(Sender: TObject);
48 procedure ReadOnlyGridDblClick(Sender: TObject);
49 private
50
51 protected
52 procedure Loaded; override;
53
54 public
55
56 end;
57
58 function EditSQL(DataSet: TIBCustomDataSet; SelectSQL: TStrings): boolean;
59
60 var
61 IBInsertSQLEditorForm: TIBInsertSQLEditorForm;
62
63 implementation
64
65 {$R *.lfm}
66
67 function EditSQL(DataSet: TIBCustomDataSet; SelectSQL: TStrings): boolean;
68 begin
69 Result := false;
70 if assigned(DataSet) and assigned(DataSet.Database) then
71 try
72 DataSet.Database.Connected := true;
73 except on E: Exception do
74 ShowMessage(E.Message)
75 end;
76
77 with TIBInsertSQLEditorForm.Create(Application) do
78 try
79 if assigned(DataSet) then
80 begin
81 IBSQLEditFrame1.Database := DataSet.Database;
82 GenerateParams.Checked := DataSet.GenerateParamNames;
83 end;
84 with IBSQLEditFrame1 do
85 begin
86 IncludeReadOnlyFields := false;
87 ExecuteOnlyProcs := true;
88 ExcludeIdentityColumns := true;
89 SQLText.Lines.Assign(SelectSQL);
90 end;
91 Result := ShowModal = mrOK;
92 if Result then
93 begin
94 SelectSQL.Assign(IBSQLEditFrame1.SQLText.Lines);
95 if assigned(DataSet) then
96 DataSet.GenerateParamNames := GenerateParams.Checked
97 end;
98 finally
99 Free
100 end;
101 end;
102
103 { TIBInsertSQLEditorForm }
104
105 procedure TIBInsertSQLEditorForm.GenerateBtnClick(Sender: TObject);
106 begin
107 if PageControl.ActivePage = ExecutePage then
108 IBSQLEditFrame1.GenerateExecuteSQL(QuoteFields.Checked)
109 else
110 IBSQLEditFrame1.GenerateInsertSQL(QuoteFields.Checked);
111 end;
112
113 procedure TIBInsertSQLEditorForm.IdentityGridDblClick(Sender: TObject);
114 begin
115 IBSQLEditFrame1.InsertSelectedIdentityCol;
116 end;
117
118 procedure TIBInsertSQLEditorForm.ReadOnlyGridDblClick(Sender: TObject);
119 begin
120 IBSQLEditFrame1.InsertSelectedReadOnlyField;
121 end;
122
123 procedure TIBInsertSQLEditorForm.Loaded;
124 begin
125 inherited Loaded;
126 if IBSQLEditFrame1 <> nil then
127 begin
128 if PrimaryKeysGrid <> nil then
129 PrimaryKeysGrid.DataSource := IBSQLEditFrame1.PrimaryKeySource;
130 if IdentityGrid <> nil then
131 IdentityGrid.DataSource := IBSQLEditFrame1.IdentityColsSource;
132 if ReadOnlyGrid <> nil then
133 ReadOnlyGrid.DataSource := IBSQLEditFrame1.ReadOnlyFieldsSource;
134 end;
135 end;
136
137
138 end.
139