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 33 by tony, Sat Jul 18 12:30:52 2015 UTC

# Line 6 | Line 6 | interface
6  
7   uses
8    Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
9 <  StdCtrls, IBSystemTables, IBDatabase;
9 >  StdCtrls, IBSystemTables, IBDatabase, IBCustomDataSet;
10  
11   type
12  
# 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 >    GenerateParams: TCheckBox;
20 >    TestBtn: TButton;
21      FieldList: TListBox;
22 +    IBTransaction1: TIBTransaction;
23      Label1: TLabel;
24      Label2: TLabel;
25      Label3: TLabel;
# Line 26 | Line 28 | type
28      QuoteFields: TCheckBox;
29      SQLText: TMemo;
30      TableNamesCombo: TComboBox;
31 <    procedure Button3Click(Sender: TObject);
32 <    procedure Button4Click(Sender: TObject);
31 >    procedure GenerateBtnClick(Sender: TObject);
32 >    procedure TestBtnClick(Sender: TObject);
33      procedure FieldListDblClick(Sender: TObject);
34      procedure FormShow(Sender: TObject);
35      procedure PrimaryKeyListDblClick(Sender: TObject);
# Line 39 | Line 41 | type
41      { public declarations }
42      constructor Create(TheOwner: TComponent); override;
43      destructor Destroy; override;
44 <    procedure SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
44 >    procedure SetDatabase(Database: TIBDatabase);
45    end;
46  
47   var
48    IBRefreshSQLEditorForm: TIBRefreshSQLEditorForm;
49  
50 < function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
50 > function EditSQL(DataSet: TIBCustomDataSet; SelectSQL: TStrings): boolean;
51  
52   implementation
53  
54 < function EditSQL(Database: TIBDatabase; Transaction: TIBTransaction; SelectSQL: TStrings): boolean;
54 > {$R *.lfm}
55 >
56 > function EditSQL(DataSet: TIBCustomDataSet; SelectSQL: TStrings): boolean;
57   begin
58    Result := false;
59 <  if assigned(Database) then
60 <  begin
61 <    if not assigned(Transaction) then
62 <    begin
63 <      if not assigned(Database.DefaultTransaction)then
60 <      begin
61 <        ShowMessage('No Default Transaction!');
62 <        Exit
63 <      end;
64 <      Transaction := Database.DefaultTransaction
59 >  if assigned(DataSet) and assigned(DataSet.Database) then
60 >    try
61 >      DataSet.Database.Connected := true;
62 >    except on E: Exception do
63 >      ShowMessage(E.Message)
64      end;
65  
67    Database.Connected := true;
68  end;
69
66    with TIBRefreshSQLEditorForm.Create(Application) do
67    try
68 <    SetDatabase(Database,Transaction);
68 >    if assigned(DataSet) then
69 >    begin
70 >        SetDatabase(DataSet.Database);
71 >        GenerateParams.Checked := DataSet.GenerateParamNames;
72 >    end;
73      SQLText.Lines.Assign(SelectSQL);
74      Result := ShowModal = mrOK;
75      if Result then
76 <     SelectSQL.Assign(SQLText.Lines)
76 >    begin
77 >     SelectSQL.Assign(SQLText.Lines);
78 >     if assigned(DataSet) then
79 >          DataSet.GenerateParamNames := GenerateParams.Checked
80 >    end;
81    finally
82      Free
83    end;
# Line 82 | Line 86 | end;
86   { TIBRefreshSQLEditorForm }
87  
88   procedure TIBRefreshSQLEditorForm.FormShow(Sender: TObject);
89 + var TableName: string;
90   begin
91 +  GenerateBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
92 +  TestBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
93    TableNamesCombo.Items.Clear;
94    FIBSystemTables.GetTableNames(TableNamesCombo.Items);
95    if TableNamesCombo.Items.Count > 0 then
96    begin
97      TableNamesCombo.ItemIndex := 0;
98 +    if Trim(SQLText.Text) <> '' then
99 +    begin
100 +      FIBSystemTables.GetTableAndColumns(SQLText.Text,TableName,nil);
101 +      TableNamesCombo.ItemIndex := TableNamesCombo.Items.IndexOf(TableName)
102 +    end;
103      FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items);
104      FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
105    end;
# Line 105 | Line 117 | begin
117    SQLText.SetFocus
118   end;
119  
120 < procedure TIBRefreshSQLEditorForm.Button3Click(Sender: TObject);
120 > procedure TIBRefreshSQLEditorForm.GenerateBtnClick(Sender: TObject);
121 > var FieldNames: TStrings;
122   begin
123 <  FIBSystemTables.GenerateRefreshSQL(TableNamesCombo.Text,QuoteFields.Checked,SQLText.Lines)
123 >  FieldNames :=  FIBSystemTables.GetFieldNames(FieldList);
124 >  try
125 >    FIBSystemTables.GenerateRefreshSQL(TableNamesCombo.Text,QuoteFields.Checked,FieldNames,SQLText.Lines)
126 >  finally
127 >    FieldNames.Free
128 >  end;
129   end;
130  
131 < procedure TIBRefreshSQLEditorForm.Button4Click(Sender: TObject);
131 > procedure TIBRefreshSQLEditorForm.TestBtnClick(Sender: TObject);
132   begin
133 <  FIBSystemTables.TestSQL(SQLText.Lines.Text)
133 >  FIBSystemTables.TestSQL(SQLText.Lines.Text,GenerateParams.Checked)
134   end;
135  
136   procedure TIBRefreshSQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
# Line 133 | Line 151 | begin
151    inherited Destroy;
152   end;
153  
154 < procedure TIBRefreshSQLEditorForm.SetDatabase(Database: TIBDatabase; Transaction: TIBTransaction);
154 > procedure TIBRefreshSQLEditorForm.SetDatabase(Database: TIBDatabase);
155   begin
156 <  FIBSystemTables.SelectDatabase(Database,Transaction)
156 >  IBTransaction1.DefaultDatabase := Database;
157 >  FIBSystemTables.SelectDatabase(Database,IBTransaction1)
158   end;
159  
141 initialization
142  {$I ibrefreshsqleditor.lrs}
143
160   end.
145

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines