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

File Contents

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