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

Comparing ibx/trunk/design/ibmodifysqleditor.pas (file contents):
Revision 7 by tony, Sun Aug 5 18:28:19 2012 UTC vs.
Revision 106 by tony, Thu Jan 18 14:37:35 2018 UTC

# Line 31 | Line 31 | unit ibmodifysqleditor;
31   interface
32  
33   uses
34 <  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
35 <  StdCtrls, IBSystemTables, IBDatabase;
34 >  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
35 >  StdCtrls, ComCtrls, ibselectsqleditor, IBSQLEditFrame, IBLookupComboEditBox,
36 >  IBDynamicGrid, IBDatabase, IBCustomDataset;
37  
38   type
39  
40    { TIBModifySQLEditorForm }
41  
42 <  TIBModifySQLEditorForm = class(TForm)
42 <    Button1: TButton;
43 <    Button2: TButton;
44 <    GenerateBtn: TButton;
45 <    TestBtn: TButton;
46 <    IBTransaction1: TIBTransaction;
42 >  TIBModifySQLEditorForm = class(TIBSelectSQLEditorForm)
43      IncludePrimaryKeys: TCheckBox;
44 <    FieldList: TListBox;
45 <    Label1: TLabel;
50 <    Label2: TLabel;
51 <    Label3: TLabel;
52 <    Label4: TLabel;
53 <    PrimaryKeyList: TListBox;
54 <    QuoteFields: TCheckBox;
55 <    SQLText: TMemo;
56 <    TableNamesCombo: TComboBox;
44 >    Label5: TLabel;
45 >    ReadOnlyGrid: TIBDynamicGrid;
46      procedure GenerateBtnClick(Sender: TObject);
58    procedure TestBtnClick(Sender: TObject);
59    procedure FieldListDblClick(Sender: TObject);
60    procedure FormShow(Sender: TObject);
61    procedure PrimaryKeyListDblClick(Sender: TObject);
62    procedure TableNamesComboCloseUp(Sender: TObject);
47    private
48 <    { private declarations }
49 <    FIBSystemTables: TIBSystemTables;
48 >
49 >  protected
50 >    procedure Loaded; override;
51 >
52    public
53 <    { public declarations }
54 <    constructor Create(TheOwner: TComponent); override;
55 <    destructor Destroy; override;
56 <    procedure SetDatabase(Database: TIBDatabase);
71 <  end;
53 >
54 >  end;
55 >
56 > function EditSQL(DataSet: TIBCustomDataSet;  SelectSQL: TStrings): boolean;
57  
58   var
59    IBModifySQLEditorForm: TIBModifySQLEditorForm;
60  
76 function EditSQL(Database: TIBDatabase;  SelectSQL: TStrings): boolean;
77
61   implementation
62  
63   {$R *.lfm}
64  
65 < function EditSQL(Database: TIBDatabase; SelectSQL: TStrings): boolean;
65 > function EditSQL(DataSet: TIBCustomDataSet; SelectSQL: TStrings): boolean;
66   begin
67    Result := false;
68 <  if assigned(Database) then
68 >  if assigned(DataSet) and assigned(DataSet.Database) then
69      try
70 <      Database.Connected := true;
70 >      DataSet.Database.Connected := true;
71      except on E: Exception do
72        ShowMessage(E.Message)
73      end;
74  
75    with TIBModifySQLEditorForm.Create(Application) do
76    try
77 <    SetDatabase(Database);
78 <    SQLText.Lines.Assign(SelectSQL);
77 >    if assigned(DataSet) then
78 >    begin
79 >        IBSQLEditFrame1.Database := DataSet.Database;
80 >        GenerateParams.Checked := DataSet.GenerateParamNames;
81 >    end;
82 >    with IBSQLEditFrame1 do
83 >    begin
84 >      IncludeReadOnlyFields := false;
85 >      ExecuteOnlyProcs := true;
86 >      SQLText.Lines.Assign(SelectSQL);
87 >    end;
88 >    IncludePrimaryKeys.Checked := false;
89      Result := ShowModal = mrOK;
90      if Result then
91 <     SelectSQL.Assign(SQLText.Lines)
91 >    begin
92 >     SelectSQL.Assign(IBSQLEditFrame1.SQLText.Lines);
93 >     if assigned(DataSet) then
94 >          DataSet.GenerateParamNames := GenerateParams.Checked
95 >    end;
96    finally
97      Free
98    end;
# Line 103 | Line 100 | end;
100  
101   { TIBModifySQLEditorForm }
102  
103 < procedure TIBModifySQLEditorForm.FormShow(Sender: TObject);
107 < var TableName: string;
103 > procedure TIBModifySQLEditorForm.Loaded;
104   begin
105 <  GenerateBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
106 <  TestBtn.Enabled := (IBTransaction1.DefaultDatabase <> nil) and IBTransaction1.DefaultDatabase.Connected;
111 <  TableNamesCombo.Items.Clear;
112 <  try
113 <  FIBSystemTables.GetTableNames(TableNamesCombo.Items);
114 <  if TableNamesCombo.Items.Count > 0 then
105 >  inherited Loaded;
106 >  if IBSQLEditFrame1 <> nil then
107    begin
108 <    TableNamesCombo.ItemIndex := 0;
109 <    if Trim(SQLText.Text) <> '' then
118 <    begin
119 <      FIBSystemTables.GetTableAndColumns(SQLText.Text,TableName,nil);
120 <      TableNamesCombo.ItemIndex := TableNamesCombo.Items.IndexOf(TableName)
121 <    end;
122 <    FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items,IncludePrimaryKeys.checked,false);
123 <    FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
108 >   if ReadOnlyGrid <> nil then
109 >     ReadOnlyGrid.DataSource := IBSQLEditFrame1.ReadOnlyFieldsSource;
110    end;
125  except {ignore}  end;
126 end;
127
128 procedure TIBModifySQLEditorForm.PrimaryKeyListDblClick(Sender: TObject);
129 begin
130  SQLText.SelText := PrimaryKeyList.Items[PrimaryKeyList.ItemIndex];
131  SQLText.SetFocus
132 end;
133
134 procedure TIBModifySQLEditorForm.FieldListDblClick(Sender: TObject);
135 begin
136  SQLText.SelText := FieldList.Items[FieldList.ItemIndex];
137  SQLText.SetFocus
111   end;
112  
113   procedure TIBModifySQLEditorForm.GenerateBtnClick(Sender: TObject);
141 var FieldNames: TStrings;
142 begin
143  FieldNames :=  FIBSystemTables.GetFieldNames(FieldList);
144  try
145    FIBSystemTables.GenerateModifySQL(TableNamesCombo.Text,QuoteFields.Checked,
146             FieldNames,SQLText.Lines)
147  finally
148    FieldNames.Free
149  end;
150 end;
151
152 procedure TIBModifySQLEditorForm.TestBtnClick(Sender: TObject);
114   begin
115 <  FIBSystemTables.TestSQL(SQLText.Lines.Text)
115 >  if PageControl.ActivePage = ExecutePage then
116 >    IBSQLEditFrame1.GenerateExecuteSQL(QuoteFields.Checked)
117 >  else
118 >    IBSQLEditFrame1.GenerateModifySQL(QuoteFields.Checked,IncludePrimaryKeys.Checked);
119   end;
120  
157 procedure TIBModifySQLEditorForm.TableNamesComboCloseUp(Sender: TObject);
158 begin
159  FIBSystemTables.GetFieldNames(TableNamesCombo.Text,FieldList.Items,IncludePrimaryKeys.checked,false);
160  FIBSystemTables.GetPrimaryKeys(TableNamesCombo.Text,PrimaryKeyList.Items);
161 end;
162
163 constructor TIBModifySQLEditorForm.Create(TheOwner: TComponent);
164 begin
165  inherited Create(TheOwner);
166  FIBSystemTables := TIBSystemTables.Create;
167 end;
168
169 destructor TIBModifySQLEditorForm.Destroy;
170 begin
171  if assigned(FIBSystemTables) then FIBSystemTables.Free;
172  inherited Destroy;
173 end;
174
175 procedure TIBModifySQLEditorForm.SetDatabase(Database: TIBDatabase);
176 begin
177  IBTransaction1.DefaultDatabase := Database;
178  FIBSystemTables.SelectDatabase(Database,IBTransaction1)
179 end;
121  
122   end.
123  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines