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

File Contents

# Content
1 unit ibdeletesqleditor;
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 { TIBDeleteSQLEditorForm }
14
15 TIBDeleteSQLEditorForm = class(TForm)
16 Button1: TButton;
17 Button2: TButton;
18 Button3: TButton;
19 Button4: TButton;
20 Label1: TLabel;
21 Label3: TLabel;
22 Label4: TLabel;
23 PrimaryKeyList: TListBox;
24 QuoteFields: TCheckBox;
25 SQLText: TMemo;
26 TableNamesCombo: TComboBox;
27 procedure Button3Click(Sender: TObject);
28 procedure Button4Click(Sender: TObject);
29 procedure FormShow(Sender: TObject);
30 procedure PrimaryKeyListDblClick(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 IBDeleteSQLEditorForm: TIBDeleteSQLEditorForm;
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 TIBDeleteSQLEditorForm.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 { TIBDeleteSQLEditorForm }
80
81 procedure TIBDeleteSQLEditorForm.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.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
89 end;
90 end;
91
92 procedure TIBDeleteSQLEditorForm.PrimaryKeyListDblClick(Sender: TObject);
93 begin
94 SQLText.SelText := PrimaryKeyList.Items[PrimaryKeyList.ItemIndex];
95 SQLText.SetFocus
96 end;
97
98 procedure TIBDeleteSQLEditorForm.Button3Click(Sender: TObject);
99 begin
100 FIBSystemTables.GenerateDeleteSQL(TableNamesCombo.Text,QuoteFields.Checked,SQLText.Lines)
101 end;
102
103 procedure TIBDeleteSQLEditorForm.Button4Click(Sender: TObject);
104 begin
105 FIBSystemTables.TestSQL(SQLText.Lines.Text)
106 end;
107
108 procedure TIBDeleteSQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
109 begin
110 FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
111 end;
112
113 constructor TIBDeleteSQLEditorForm.Create(TheOwner: TComponent);
114 begin
115 inherited Create(TheOwner);
116 FIBSystemTables := TIBSystemTables.Create;
117 end;
118
119 destructor TIBDeleteSQLEditorForm.Destroy;
120 begin
121 if assigned(FIBSystemTables) then FIBSystemTables.Free;
122 inherited Destroy;
123 end;
124
125 procedure TIBDeleteSQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
126 begin
127 FIBSystemTables.SelectDatabase(Database,Transaction)
128 end;
129
130 initialization
131 {$I ibdeletesqleditor.lrs}
132
133 end.
134