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, 1 month ago) by tony
Content type: text/x-pascal
File size: 3851 byte(s)
Log Message:
Committing updates for Release pre-release

File Contents

# Content
1 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