ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/ibselectsqleditor.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: 3809 byte(s)
Log Message:
Committing updates for Release pre-release

File Contents

# Content
1 unit ibselectsqleditor;
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 { TIBSelectSQLEditorForm }
14
15 TIBSelectSQLEditorForm = 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 Label4: TLabel;
25 PrimaryKeyList: TListBox;
26 QuoteFields: TCheckBox;
27 SQLText: TMemo;
28 TableNamesCombo: TComboBox;
29 procedure Button3Click(Sender: TObject);
30 procedure Button4Click(Sender: TObject);
31 procedure FieldListDblClick(Sender: TObject);
32 procedure FormShow(Sender: TObject);
33 procedure PrimaryKeyListDblClick(Sender: TObject);
34 procedure TableNamesComboCloseUp(Sender: TObject);
35 private
36 { private declarations }
37 FIBSystemTables: TIBSystemTables;
38 public
39 { public declarations }
40 constructor Create(TheOwner: TComponent); override;
41 destructor Destroy; override;
42 procedure SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
43 end;
44
45 var
46 IBSelectSQLEditorForm: TIBSelectSQLEditorForm;
47
48 function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
49
50 implementation
51
52 function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
53 begin
54 Result := false;
55 if assigned(Database) then
56 begin
57 if not assigned(Transaction) then
58 begin
59 if not assigned(Database.DefaultTransaction)then
60 begin
61 ShowMessage('No Default Transaction!');
62 Exit
63 end;
64 Transaction := Database.DefaultTransaction
65 end;
66
67 Database.Connected := true;
68 end;
69
70 with TIBSelectSQLEditorForm.Create(Application) do
71 try
72 SetDatabase(Database,Transaction);
73 SQLText.Lines.Assign(SelectSQL);
74 Result := ShowModal = mrOK;
75 if Result then
76 SelectSQL.Assign(SQLText.Lines)
77 finally
78 Free
79 end;
80 end;
81
82 { TIBSelectSQLEditorForm }
83
84 procedure TIBSelectSQLEditorForm.FormShow(Sender: TObject);
85 begin
86 TableNamesCombo.Items.Clear;
87 FIBSystemTables.GetTableNames(TableNamesCombo.Items);
88 if TableNamesCombo.Items.Count > 0 then
89 begin
90 TableNamesCombo.ItemIndex := 0;
91 FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
92 FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
93 end;
94 end;
95
96 procedure TIBSelectSQLEditorForm.PrimaryKeyListDblClick(Sender: TObject);
97 begin
98 SQLText.SelText := PrimaryKeyList.Items[PrimaryKeyList.ItemIndex];
99 SQLText.SetFocus
100 end;
101
102 procedure TIBSelectSQLEditorForm.FieldListDblClick(Sender: TObject);
103 begin
104 SQLText.SelText := FieldList.Items[FieldList.ItemIndex];
105 SQLText.SetFocus
106 end;
107
108 procedure TIBSelectSQLEditorForm.Button3Click(Sender: TObject);
109 begin
110 FIBSystemTables.GenerateSelectSQL(TableNamesCombo.Text,QuoteFields.Checked,SQLText.Lines)
111 end;
112
113 procedure TIBSelectSQLEditorForm.Button4Click(Sender: TObject);
114 begin
115 FIBSystemTables.TestSQL(SQLText.Lines.Text)
116 end;
117
118 procedure TIBSelectSQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
119 begin
120 FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
121 FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
122 end;
123
124 constructor TIBSelectSQLEditorForm.Create(TheOwner: TComponent);
125 begin
126 inherited Create(TheOwner);
127 FIBSystemTables := TIBSystemTables.Create;
128 end;
129
130 destructor TIBSelectSQLEditorForm.Destroy;
131 begin
132 if assigned(FIBSystemTables) then FIBSystemTables.Free;
133 inherited Destroy;
134 end;
135
136 procedure TIBSelectSQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
137 begin
138 FIBSystemTables.SelectDatabase(Database,Transaction)
139 end;
140
141 initialization
142 {$I ibselectsqleditor.lrs}
143
144 end.
145