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

File Contents

# User Rev Content
1 tony 5 unit ibmodifysqleditor;
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     { TIBModifySQLEditorForm }
14    
15     TIBModifySQLEditorForm = 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     IBModifySQLEditorForm: TIBModifySQLEditorForm;
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 TIBModifySQLEditorForm.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     { TIBModifySQLEditorForm }
83    
84     procedure TIBModifySQLEditorForm.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,false);
92     FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
93     end;
94     end;
95    
96     procedure TIBModifySQLEditorForm.PrimaryKeyListDblClick(Sender: TObject);
97     begin
98     SQLText.SelText := PrimaryKeyList.Items[PrimaryKeyList.ItemIndex];
99     SQLText.SetFocus
100     end;
101    
102     procedure TIBModifySQLEditorForm.FieldListDblClick(Sender: TObject);
103     begin
104     SQLText.SelText := FieldList.Items[FieldList.ItemIndex];
105     SQLText.SetFocus
106     end;
107    
108     procedure TIBModifySQLEditorForm.Button3Click(Sender: TObject);
109     var FieldNames: TStringList;
110     I: integer;
111     begin
112     if FieldList.SelCount = 0 then
113     FIBSystemTables.GenerateModifySQL(TableNamesCombo.Text,QuoteFields.Checked,
114     FieldList.Items,SQLText.Lines)
115     else
116     begin
117     FieldNames := TStringList.Create;
118     try
119     for I := 0 to FieldList.Items.Count - 1 do
120     if FieldList.Selected[I] then
121     FieldNames.Add(FieldList.Items[I]);
122     FIBSystemTables.GenerateModifySQL(TableNamesCombo.Text,QuoteFields.Checked,
123     FieldNames,SQLText.Lines)
124     finally
125     FieldNames.Free
126     end;
127     end;
128     end;
129    
130     procedure TIBModifySQLEditorForm.Button4Click(Sender: TObject);
131     begin
132     FIBSystemTables.TestSQL(SQLText.Lines.Text)
133     end;
134    
135     procedure TIBModifySQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
136     begin
137     FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items,false);
138     FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
139     end;
140    
141     constructor TIBModifySQLEditorForm.Create(TheOwner: TComponent);
142     begin
143     inherited Create(TheOwner);
144     FIBSystemTables := TIBSystemTables.Create;
145     end;
146    
147     destructor TIBModifySQLEditorForm.Destroy;
148     begin
149     if assigned(FIBSystemTables) then FIBSystemTables.Free;
150     inherited Destroy;
151     end;
152    
153     procedure TIBModifySQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
154     begin
155     FIBSystemTables.SelectDatabase(Database,Transaction)
156     end;
157    
158     initialization
159     {$I ibmodifysqleditor.lrs}
160    
161     end.
162