ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/ibinsertsqleditor.pas
Revision: 5
Committed: Fri Feb 18 16:26:16 2011 UTC (13 years, 2 months ago) by tony
Content type: text/x-pascal
File size: 3851 byte(s)
Log Message:
Committing updates for Release pre-release

File Contents

# User Rev Content
1 tony 5 unit ibinsertsqleditor;
2    
3     {$mode objfpc}{$H+}
4    
5     interface
6    
7     uses
8     Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
9     StdCtrls, IBSystemTables, IBDatabase;
10    
11     type
12    
13     { TIBInsertSQLEditorForm }
14    
15     TIBInsertSQLEditorForm = class(TForm)
16     Button1: TButton;
17     Button2: TButton;
18     Button3: TButton;
19     Button4: TButton;
20     FieldList: TListBox;
21     Label1: TLabel;
22     Label2: TLabel;
23     Label3: TLabel;
24     QuoteFields: TCheckBox;
25     SQLText: TMemo;
26     TableNamesCombo: TComboBox;
27     procedure Button3Click(Sender: TObject);
28     procedure Button4Click(Sender: TObject);
29     procedure FieldListDblClick(Sender: TObject);
30     procedure FormShow(Sender: TObject);
31     procedure TableNamesComboCloseUp(Sender: TObject);
32     private
33     { private declarations }
34     FIBSystemTables: TIBSystemTables;
35     public
36     { public declarations }
37     constructor Create(TheOwner: TComponent); override;
38     destructor Destroy; override;
39     procedure SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
40     end;
41    
42     var
43     IBInsertSQLEditorForm: TIBInsertSQLEditorForm;
44    
45     function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
46    
47     implementation
48    
49     function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
50     begin
51     Result := false;
52     if assigned(Database) then
53     begin
54     if not assigned(Transaction) then
55     begin
56     if not assigned(Database.DefaultTransaction)then
57     begin
58     ShowMessage('No Default Transaction!');
59     Exit
60     end;
61     Transaction := Database.DefaultTransaction
62     end;
63    
64     Database.Connected := true;
65     end;
66    
67     with TIBInsertSQLEditorForm.Create(Application) do
68     try
69     SetDatabase(Database,Transaction);
70     SQLText.Lines.Assign(SelectSQL);
71     Result := ShowModal = mrOK;
72     if Result then
73     SelectSQL.Assign(SQLText.Lines)
74     finally
75     Free
76     end;
77     end;
78    
79     { TIBInsertSQLEditorForm }
80    
81     procedure TIBInsertSQLEditorForm.FormShow(Sender: TObject);
82     begin
83     TableNamesCombo.Items.Clear;
84     FIBSystemTables.GetTableNames(TableNamesCombo.Items);
85     if TableNamesCombo.Items.Count > 0 then
86     begin
87     TableNamesCombo.ItemIndex := 0;
88     FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
89     end;
90     end;
91    
92     procedure TIBInsertSQLEditorForm.FieldListDblClick(Sender: TObject);
93     begin
94     SQLText.SelText := FieldList.Items[FieldList.ItemIndex];
95     SQLText.SetFocus
96     end;
97    
98     procedure TIBInsertSQLEditorForm.Button3Click(Sender: TObject);
99     var FieldNames: TStringList;
100     I: integer;
101     begin
102     if FieldList.SelCount = 0 then
103     FIBSystemTables.GenerateInsertSQL(TableNamesCombo.Text,QuoteFields.Checked,
104     FieldList.Items,SQLText.Lines)
105     else
106     begin
107     FieldNames := TStringList.Create;
108     try
109     for I := 0 to FieldList.Items.Count - 1 do
110     if FieldList.Selected[I] then
111     FieldNames.Add(FieldList.Items[I]);
112     FIBSystemTables.GenerateInsertSQL(TableNamesCombo.Text,QuoteFields.Checked,
113     FieldNames,SQLText.Lines)
114     finally
115     FieldNames.Free
116     end;
117     end;
118     end;
119    
120     procedure TIBInsertSQLEditorForm.Button4Click(Sender: TObject);
121     begin
122     FIBSystemTables.TestSQL(SQLText.Lines.Text)
123     end;
124    
125     procedure TIBInsertSQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
126     begin
127     FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
128     end;
129    
130     constructor TIBInsertSQLEditorForm.Create(TheOwner: TComponent);
131     begin
132     inherited Create(TheOwner);
133     FIBSystemTables := TIBSystemTables.Create;
134     end;
135    
136     destructor TIBInsertSQLEditorForm.Destroy;
137     begin
138     if assigned(FIBSystemTables) then FIBSystemTables.Free;
139     inherited Destroy;
140     end;
141    
142     procedure TIBInsertSQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
143     begin
144     FIBSystemTables.SelectDatabase(Database,Transaction)
145     end;
146    
147     initialization
148     {$I ibinsertsqleditor.lrs}
149    
150     end.
151