ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/ibrefreshsqleditor.pas
(Generate patch)

Comparing ibx/trunk/design/ibrefreshsqleditor.pas (file contents):
Revision 5 by tony, Fri Feb 18 16:26:16 2011 UTC vs.
Revision 7 by tony, Sun Aug 5 18:28:19 2012 UTC

# Line 15 | Line 15 | type
15    TIBRefreshSQLEditorForm = class(TForm)
16      Button1: TButton;
17      Button2: TButton;
18 <    Button3: TButton;
19 <    Button4: TButton;
18 >    GenerateBtn: TButton;
19 >    TestBtn: TButton;
20      FieldList: TListBox;
21 +    IBTransaction1: TIBTransaction;
22      Label1: TLabel;
23      Label2: TLabel;
24      Label3: TLabel;
# Line 26 | Line 27 | type
27      QuoteFields: TCheckBox;
28      SQLText: TMemo;
29      TableNamesCombo: TComboBox;
30 <    procedure Button3Click(Sender: TObject);
31 <    procedure Button4Click(Sender: TObject);
30 >    procedure GenerateBtnClick(Sender: TObject);
31 >    procedure TestBtnClick(Sender: TObject);
32      procedure FieldListDblClick(Sender: TObject);
33      procedure FormShow(Sender: TObject);
34      procedure PrimaryKeyListDblClick(Sender: TObject);
# Line 39 | Line 40 | type
40      { public declarations }
41      constructor Create(TheOwner: TComponent); override;
42      destructor Destroy; override;
43 <    procedure SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
43 >    procedure SetDatabase(Database: TIBDatabase);
44    end;
45  
46   var
47    IBRefreshSQLEditorForm: TIBRefreshSQLEditorForm;
48  
49 < function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
49 > function EditSQL(Database: TIBDatabase; SelectSQL: TStrings): boolean;
50  
51   implementation
52  
53 < function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
53 > {$R *.lfm}
54 >
55 > function EditSQL(Database: TIBDatabase;  SelectSQL: TStrings): boolean;
56   begin
57    Result := false;
58    if assigned(Database) then
59 <  begin
60 <    if not assigned(Transaction) then
61 <    begin
62 <      if not assigned(Database.DefaultTransaction)then
60 <      begin
61 <        ShowMessage('No Default Transaction!');
62 <        Exit
63 <      end;
64 <      Transaction := Database.DefaultTransaction
59 >    try
60 >      Database.Connected := true;
61 >    except on E: Exception do
62 >      ShowMessage(E.Message)
63      end;
64  
67    Database.Connected := true;
68  end;
69
65    with TIBRefreshSQLEditorForm.Create(Application) do
66    try
67 <    SetDatabase(Database,Transaction);
67 >    SetDatabase(Database);
68      SQLText.Lines.Assign(SelectSQL);
69      Result := ShowModal = mrOK;
70      if Result then
# Line 82 | Line 77 | end;
77   { TIBRefreshSQLEditorForm }
78  
79   procedure TIBRefreshSQLEditorForm.FormShow(Sender: TObject);
80 + var TableName: string;
81   begin
82 +  GenerateBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
83 +  TestBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
84    TableNamesCombo.Items.Clear;
85    FIBSystemTables.GetTableNames(TableNamesCombo.Items);
86    if TableNamesCombo.Items.Count > 0 then
87    begin
88      TableNamesCombo.ItemIndex := 0;
89 +    if Trim(SQLText.Text) <> '' then
90 +    begin
91 +      FIBSystemTables.GetTableAndColumns(SQLText.Text,TableName,nil);
92 +      TableNamesCombo.ItemIndex := TableNamesCombo.Items.IndexOf(TableName)
93 +    end;
94      FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
95      FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
96    end;
# Line 105 | Line 108 | begin
108    SQLText.SetFocus
109   end;
110  
111 < procedure TIBRefreshSQLEditorForm.Button3Click(Sender: TObject);
111 > procedure TIBRefreshSQLEditorForm.GenerateBtnClick(Sender: TObject);
112 > var FieldNames: TStrings;
113   begin
114 <  FIBSystemTables.GenerateRefreshSQL(TableNamesCombo.Text,QuoteFields.Checked,SQLText.Lines)
114 >  FieldNames :=  FIBSystemTables.GetFieldNames(FieldList);
115 >  try
116 >    FIBSystemTables.GenerateRefreshSQL(TableNamesCombo.Text,QuoteFields.Checked,FieldNames,SQLText.Lines)
117 >  finally
118 >    FieldNames.Free
119 >  end;
120   end;
121  
122 < procedure TIBRefreshSQLEditorForm.Button4Click(Sender: TObject);
122 > procedure TIBRefreshSQLEditorForm.TestBtnClick(Sender: TObject);
123   begin
124    FIBSystemTables.TestSQL(SQLText.Lines.Text)
125   end;
# Line 133 | Line 142 | begin
142    inherited Destroy;
143   end;
144  
145 < procedure TIBRefreshSQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
145 > procedure TIBRefreshSQLEditorForm.SetDatabase(Database: TIBDatabase);
146   begin
147 <  FIBSystemTables.SelectDatabase(Database,Transaction)
147 >  IBTransaction1.DefaultDatabase := Database;
148 >  FIBSystemTables.SelectDatabase(Database,IBTransaction1)
149   end;
150  
141 initialization
142  {$I ibrefreshsqleditor.lrs}
143
151   end.
152  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines