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

File Contents

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