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

File Contents

# User Rev Content
1 tony 5 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