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

Comparing ibx/trunk/design/IBDatabaseEdit.pas (file contents):
Revision 5 by tony, Fri Feb 18 16:26:16 2011 UTC vs.
Revision 17 by tony, Sat Dec 28 19:22:24 2013 UTC

# Line 1 | Line 1
1 < {************************************************************************}
2 < {                                                                        }
3 < {       Borland Delphi Visual Component Library                          }
4 < {       InterBase Express core components                                }
5 < {                                                                        }
6 < {       Copyright (c) 1998-2000 Inprise Corporation                      }
7 < {                                                                        }
8 < {    InterBase Express is based in part on the product                   }
9 < {    Free IB Components, written by Gregory H. Deatz for                 }
10 < {    Hoagland, Longo, Moran, Dunst & Doukas Company.                     }
11 < {    Free IB Components is used under license.                           }
12 < {                                                                        }
13 < {    The contents of this file are subject to the InterBase              }
14 < {    Public License Version 1.0 (the "License"); you may not             }
15 < {    use this file except in compliance with the License. You            }
16 < {    may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17 < {    Software distributed under the License is distributed on            }
18 < {    an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either              }
19 < {    express or implied. See the License for the specific language       }
20 < {    governing rights and limitations under the License.                 }
21 < {    The Original Code was created by InterBase Software Corporation     }
22 < {       and its successors.                                              }
23 < {    Portions created by Inprise Corporation are Copyright (C) Inprise   }
24 < {       Corporation. All Rights Reserved.                                }
25 < {    Contributor(s): Jeff Overcash                                       }
26 < {                                                                        }
27 < {************************************************************************}
28 <
29 < unit IBDatabaseEdit;
30 <
31 < {$MODE Delphi}  {$H-}
32 <
33 < interface
34 <
35 < uses
36 <  {Windows,} Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
37 <  StdCtrls, ExtCtrls, IBDataBase, IB, IBXConst, LResources;
38 <
39 < type
40 <
41 <  { TIBDatabaseEditForm }
42 <
43 <  TIBDatabaseEditForm = class(TForm)
44 <    Panel1: TPanel;
45 <    DatabaseName: TEdit;
46 <    Label1: TLabel;
47 <    LocalRbtn: TRadioButton;
48 <    RemoteRbtn: TRadioButton;
49 <    Browse: TButton;
50 <    GroupBox1: TGroupBox;
51 <    UserName: TEdit;
52 <    Password: TEdit;
53 <    SQLRole: TEdit;
54 <    Label2: TLabel;
55 <    Label3: TLabel;
56 <    Label4: TLabel;
57 <    DatabaseParams: TMemo;
58 <    OKBtn: TButton;
59 <    CancelBtn: TButton;
60 <    HelpBtn: TButton;
61 <    Label5: TLabel;
62 <    LoginPrompt: TCheckBox;
63 <    Label6: TLabel;
64 <    CharacterSet: TComboBox;
65 <    ServerName: TEdit;
66 <    Protocol: TComboBox;
67 <    Label7: TLabel;
68 <    Label8: TLabel;
69 <    Test: TButton;
70 <    procedure CharacterSetCloseUp(Sender: TObject);
71 <    procedure RemoteRbtnClick(Sender: TObject);
72 <    procedure BrowseClick(Sender: TObject);
73 <    procedure LocalRbtnClick(Sender: TObject);
74 <    procedure OKBtnClick(Sender: TObject);
75 <    procedure FormCreate(Sender: TObject);
76 <    procedure HelpBtnClick(Sender: TObject);
77 <    procedure UserNameChange(Sender: TObject);
78 <    procedure PasswordChange(Sender: TObject);
79 <    procedure SQLRoleChange(Sender: TObject);
80 <    procedure CharacterSetChange(Sender: TObject);
81 <    procedure TestClick(Sender: TObject);
82 <  private
83 <    { Private declarations }
84 <    Database: TIBDatabase;
85 <    function Edit: Boolean;
86 <    function GetParam(Name: string): string;
87 <    procedure AddParam(Name, Value: string);
88 <    procedure DeleteParam(Name: string);
89 <  public
90 <    { Public declarations }
91 <  end;
92 <
93 < var
94 <  IBDatabaseEditForm: TIBDatabaseEditForm;
95 <
96 <  function EditIBDatabase(ADatabase: TIBDatabase): Boolean;
97 <
98 < implementation
99 <
100 <
101 < uses {LibHelp,} TypInfo;
102 <
103 < function EditIBDatabase(ADatabase: TIBDatabase): Boolean;
104 < begin
105 <  with TIBDatabaseEditForm.Create(Application) do
106 <  try
107 <    Database := ADatabase;
108 <    Result := Edit;
109 <  finally
110 <    Free;
111 <  end;
112 < end;
113 <
114 < function TIBDatabaseEditForm.GetParam(Name: string): string;
115 < var
116 <  i: Integer;
117 < begin
118 <  Result := '';
119 <  for i := 0 to DatabaseParams.Lines.Count - 1 do
120 <  begin
121 <    if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
122 <    begin
123 <      Result := DatabaseParams.Lines.Values[DatabaseParams.Lines.Names[i]];
124 <      break;
125 <    end;
126 <  end;
127 < end;
128 <
129 < procedure TIBDatabaseEditForm.AddParam(Name, Value: string);
130 < var
131 <  i: Integer;
132 <  found: boolean;
133 < begin
134 <  found := False;
135 <  if Trim(Value) <> '' then
136 <  begin
137 <    for i := 0 to DatabaseParams.Lines.Count - 1 do
138 <    begin
139 <      if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
140 <      begin
141 <        DatabaseParams.Lines.Values[DatabaseParams.Lines.Names[i]] := Value;
142 <        found := True;
143 <        break;
144 <      end;
145 <    end;
146 <    if not found then
147 <      DatabaseParams.Lines.Add(Name + '=' + Value);
148 <  end
149 <  else
150 <    DeleteParam(Name);
151 < end;
152 <
153 < procedure TIBDatabaseEditForm.DeleteParam(Name: string);
154 < var
155 <  i: Integer;
156 < begin
157 <    for i := 0 to DatabaseParams.Lines.Count - 1 do
158 <    begin
159 <      if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
160 <      begin
161 <        DatabaseParams.Lines.Delete(i);
162 <        break;
163 <      end;
164 <    end;
165 < end;
166 <
167 < function TIBDatabaseEditForm.Edit: Boolean;
168 < var
169 <  st: string;
170 <
171 <  procedure DecomposeDatabaseName;
172 <  var
173 <    Idx1, Idx2: Integer;
174 <    st: string;
175 <  begin
176 <    if Pos('\\', Database.DatabaseName) <> 0 then {do not localize}
177 <    begin
178 <      LocalRBtn.Checked := False;
179 <      RemoteRbtn.Checked := True;
180 <      Protocol.ItemIndex := 1;
181 <      st := copy(Database.DatabaseName, 3, Length(Database.DatabaseName));
182 <      Idx1 := Pos('\', st); {do not localize}
183 <      if Idx1 = 0 then
184 <        IBError(ibxeUnknownError, [nil])
185 <      else begin
186 <        ServerName.Text := Copy(st, 1, Idx1 - 1);
187 <        DatabaseName.Text:= Copy(st, Idx1 + 1, Length(st));
188 <      end;
189 <    end
190 <    else begin
191 <      Idx1 := Pos(':', Database.DatabaseName ); {do not localize}
192 <      If (Idx1 = 0) or (Idx1 = 2) then
193 <      begin
194 <        DatabaseName.Text := Database.DatabaseName;
195 <      end
196 <      else
197 <      begin
198 <        LocalRBtn.Checked := False;
199 <        RemoteRbtn.Checked := True;
200 <        Idx2 := Pos('@', Database.DatabaseName); {do not localize}
201 <        if Idx2 = 0 then
202 <        begin
203 <          Protocol.ItemIndex := 0;
204 <          ServerName.Text := copy(Database.DatabaseName, 1, Idx1 - 1);
205 <          DatabaseName.Text := copy(Database.DatabaseName, Idx1 + 1,
206 <            Length(Database.DatabaseName));
207 <        end
208 <        else begin
209 <          Protocol.ItemIndex := 2;
210 <          ServerName.Text := copy(Database.DatabaseName, 1, Idx2 - 1);
211 <          DatabaseName.Text := copy(Database.DatabaseName, Idx2 + 1,
212 <            Length(Database.DatabaseName));
213 <        end;
214 <      end;
215 <    end;
216 <  end;
217 < begin
218 <  DecomposeDatabaseName;
219 <  DatabaseParams.Lines := Database.Params;
220 <  LoginPrompt.Checked := Database.LoginPrompt;
221 <  UserName.Text := GetParam('user_name');
222 <  Password.Text := GetParam('password');
223 <  SQLRole.Text := GetParam('sql_role');
224 <  st := GetParam('lc_ctype');
225 <  if (st <> '') then
226 <    CharacterSet.ItemIndex := CharacterSet.Items.IndexOf(st);
227 <  Result := False;
228 <  if ShowModal = mrOk then
229 <  begin
230 <    Database.DatabaseName := DatabaseName.Text;
231 <    if LocalRbtn.Checked then
232 <      DatabaseName.Text := Database.DatabaseName
233 <    else
234 <      case Protocol.ItemIndex of
235 <        0: Database.DatabaseName := Format('%s:%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
236 <        1: Database.DatabaseName := Format('\\%s\%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
237 <        2: Database.DatabaseName := Format('%s@%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
238 <      end;
239 <    Database.Params := DatabaseParams.Lines;
240 <    Database.LoginPrompt := LoginPrompt.Checked;
241 <    Result := True;
242 <  end;
243 < end;
244 <
245 < procedure TIBDatabaseEditForm.RemoteRbtnClick(Sender: TObject);
246 < begin
247 <  Browse.Enabled := False;
248 <  Label7.Enabled := True;
249 <  Label8.Enabled := True;
250 <  Protocol.Enabled := True;
251 <  ServerName.Enabled := True;
252 < end;
253 <
254 < procedure TIBDatabaseEditForm.CharacterSetCloseUp(Sender: TObject);
255 < begin
256 <  if (CharacterSet.Text <> 'None') then {do not localize}
257 <    AddParam('lc_ctype', CharacterSet.Text)
258 <  else
259 <    DeleteParam('lc_ctype');
260 <
261 < end;
262 <
263 < procedure TIBDatabaseEditForm.BrowseClick(Sender: TObject);
264 < begin
265 <  with TOpenDialog.Create(Application) do
266 <    try
267 <      InitialDir := ExtractFilePath(DatabaseName.Text);
268 <      Filter := SDatabaseFilter;
269 <      if Execute then
270 <        DatabaseName.Text := FileName;
271 <    finally
272 <      Free
273 <    end;
274 < end;
275 <
276 < procedure TIBDatabaseEditForm.LocalRbtnClick(Sender: TObject);
277 < begin
278 <  Browse.Enabled := True;
279 <  Label7.Enabled := False;
280 <  Label8.Enabled := False;
281 <  ServerName.Enabled := False;
282 <  Protocol.Enabled := False;
283 < end;
284 <
285 < procedure TIBDatabaseEditForm.OKBtnClick(Sender: TObject);
286 < begin
287 <  ModalResult := mrNone;
288 <  if Database.Connected then
289 <  begin
290 <    if MessageDlg(SDisconnectDatabase, mtConfirmation,
291 <      mbOkCancel, 0) <> mrOk then Exit;
292 <    Database.Close;
293 <  end;
294 <  ModalResult := mrOk;
295 < end;
296 <
297 < procedure TIBDatabaseEditForm.FormCreate(Sender: TObject);
298 < begin
299 < //  HelpContext := hcDIBDataBaseEdit;
300 < end;
301 <
302 < procedure TIBDatabaseEditForm.HelpBtnClick(Sender: TObject);
303 < begin
304 <  Application.HelpContext(HelpContext);
305 < end;
306 <
307 < procedure TIBDatabaseEditForm.UserNameChange(Sender: TObject);
308 < begin
309 <  AddParam('user_name', UserName.Text);
310 < end;
311 <
312 < procedure TIBDatabaseEditForm.PasswordChange(Sender: TObject);
313 < begin
314 <  AddParam('password', Password.Text);
315 < end;
316 <
317 < procedure TIBDatabaseEditForm.SQLRoleChange(Sender: TObject);
318 < begin
319 <  AddParam('sql_role_name', SQLRole.Text);
320 < end;
321 <
322 < procedure TIBDatabaseEditForm.CharacterSetChange(Sender: TObject);
323 < begin
324 <  ShowMessage(CharacterSet.Text);
325 <  if (CharacterSet.Text <> 'None') then {do not localize}
326 <    AddParam('lc_ctype', CharacterSet.Text)
327 <  else
328 <    DeleteParam('lc_ctype');
329 < end;
330 <
331 < procedure TIBDatabaseEditForm.TestClick(Sender: TObject);
332 < var
333 <  tempDB : TIBDatabase;
334 < begin
335 <  Test.Enabled := false;
336 <  tempDB := TIBDatabase.Create(nil);
337 <  try
338 <    if LocalRbtn.Checked then
339 <      tempDB.DatabaseName := DatabaseName.Text
340 <    else
341 <      case Protocol.ItemIndex of
342 <        0: tempDB.DatabaseName := Format('%s:%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
343 <        1: tempDB.DatabaseName := Format('\\%s\%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
344 <        2: tempDB.DatabaseName := Format('%s@%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
345 <      end;
346 <    tempDB.Params.Assign(DatabaseParams.Lines);
347 <    tempDB.LoginPrompt := LoginPrompt.Checked;
348 <    tempDB.Connected := true;
349 <    ShowMessage('Successful Connection');
350 <  finally
351 <    tempDB.Free;
352 <    Test.Enabled := true;
353 <  end;
354 < end;
355 <
356 < initialization
357 <  {$i IBDatabaseEdit.lrs}
358 <
359 < end.
1 > {************************************************************************}
2 > {                                                                        }
3 > {       Borland Delphi Visual Component Library                          }
4 > {       InterBase Express core components                                }
5 > {                                                                        }
6 > {       Copyright (c) 1998-2000 Inprise Corporation                      }
7 > {                                                                        }
8 > {    InterBase Express is based in part on the product                   }
9 > {    Free IB Components, written by Gregory H. Deatz for                 }
10 > {    Hoagland, Longo, Moran, Dunst & Doukas Company.                     }
11 > {    Free IB Components is used under license.                           }
12 > {                                                                        }
13 > {    The contents of this file are subject to the InterBase              }
14 > {    Public License Version 1.0 (the "License"); you may not             }
15 > {    use this file except in compliance with the License. You            }
16 > {    may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17 > {    Software distributed under the License is distributed on            }
18 > {    an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either              }
19 > {    express or implied. See the License for the specific language       }
20 > {    governing rights and limitations under the License.                 }
21 > {    The Original Code was created by InterBase Software Corporation     }
22 > {       and its successors.                                              }
23 > {    Portions created by Inprise Corporation are Copyright (C) Inprise   }
24 > {       Corporation. All Rights Reserved.                                }
25 > {    Contributor(s): Jeff Overcash                                       }
26 > {                                                                        }
27 > {************************************************************************}
28 >
29 > unit IBDatabaseEdit;
30 >
31 > {$MODE Delphi}
32 >
33 > {$A+}                           (* Aligned records: On *)
34 > {$B-}                           (* Short circuit boolean expressions: Off *)
35 > {$G+}                           (* Imported data: On *)
36 > {$H+}                           (* Huge Strings: On *)
37 > {$J-}                           (* Modification of Typed Constants: Off *)
38 > {$M+}                           (* Generate run-time type information: On *)
39 > {$O+}                           (* Optimization: On *)
40 > {$Q-}                           (* Overflow checks: Off *)
41 > {$R-}                           (* Range checks: Off *)
42 > {$T+}                           (* Typed address: On *)
43 > {$U+}                           (* Pentim-safe FDIVs: On *)
44 > {$W-}                           (* Always generate stack frames: Off *)
45 > {$X+}                           (* Extended syntax: On *)
46 > {$Z1}                           (* Minimum Enumeration Size: 1 Byte *)
47 >
48 >
49 > interface
50 >
51 > uses
52 >  {Windows,} Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
53 >  StdCtrls, ExtCtrls, IBDataBase, IB, IBXConst, LResources;
54 >
55 > type
56 >
57 >  { TIBDatabaseEditForm }
58 >
59 >  TIBDatabaseEditForm = class(TForm)
60 >    Panel1: TPanel;
61 >    DatabaseName: TEdit;
62 >    Label1: TLabel;
63 >    LocalRbtn: TRadioButton;
64 >    RemoteRbtn: TRadioButton;
65 >    Browse: TButton;
66 >    GroupBox1: TGroupBox;
67 >    UserName: TEdit;
68 >    Password: TEdit;
69 >    SQLRole: TEdit;
70 >    Label2: TLabel;
71 >    Label3: TLabel;
72 >    Label4: TLabel;
73 >    DatabaseParams: TMemo;
74 >    OKBtn: TButton;
75 >    CancelBtn: TButton;
76 >    Label5: TLabel;
77 >    LoginPrompt: TCheckBox;
78 >    Label6: TLabel;
79 >    CharacterSet: TComboBox;
80 >    ServerName: TEdit;
81 >    Protocol: TComboBox;
82 >    Label7: TLabel;
83 >    Label8: TLabel;
84 >    Test: TButton;
85 >    procedure RemoteRbtnClick(Sender: TObject);
86 >    procedure BrowseClick(Sender: TObject);
87 >    procedure LocalRbtnClick(Sender: TObject);
88 >    procedure OKBtnClick(Sender: TObject);
89 >    procedure FormCreate(Sender: TObject);
90 >    procedure HelpBtnClick(Sender: TObject);
91 >    procedure UserNameChange(Sender: TObject);
92 >    procedure PasswordChange(Sender: TObject);
93 >    procedure SQLRoleChange(Sender: TObject);
94 >    procedure CharacterSetChange(Sender: TObject);
95 >    procedure TestClick(Sender: TObject);
96 >  private
97 >    { Private declarations }
98 >    Database: TIBDatabase;
99 >    function Edit: Boolean;
100 >    function GetParam(Name: string): string;
101 >    procedure AddParam(Name, Value: string);
102 >    procedure DeleteParam(Name: string);
103 >  public
104 >    { Public declarations }
105 >  end;
106 >
107 > var
108 >  IBDatabaseEditForm: TIBDatabaseEditForm;
109 >
110 >  function EditIBDatabase(ADatabase: TIBDatabase): Boolean;
111 >
112 > implementation
113 >
114 > {$R *.lfm}
115 >
116 > uses TypInfo;
117 >
118 > function EditIBDatabase(ADatabase: TIBDatabase): Boolean;
119 > begin
120 >  with TIBDatabaseEditForm.Create(Application) do
121 >  try
122 >    Database := ADatabase;
123 >    Result := Edit;
124 >  finally
125 >    Free;
126 >  end;
127 > end;
128 >
129 > function TIBDatabaseEditForm.GetParam(Name: string): string;
130 > var
131 >  i: Integer;
132 > begin
133 >  Result := '';
134 >  for i := 0 to DatabaseParams.Lines.Count - 1 do
135 >  begin
136 >    if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
137 >    begin
138 >      Result := DatabaseParams.Lines.Values[DatabaseParams.Lines.Names[i]];
139 >      break;
140 >    end;
141 >  end;
142 > end;
143 >
144 > procedure TIBDatabaseEditForm.AddParam(Name, Value: string);
145 > var
146 >  i: Integer;
147 >  found: boolean;
148 > begin
149 >  found := False;
150 >  if Trim(Value) <> '' then
151 >  begin
152 >    DatabaseParams.Lines.NameValueSeparator := '=';
153 >    for i := 0 to DatabaseParams.Lines.Count - 1 do
154 >    begin
155 >      if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
156 >      begin
157 >        DatabaseParams.Lines.Values[DatabaseParams.Lines.Names[i]] := Value;
158 >        found := True;
159 >        break;
160 >      end;
161 >    end;
162 >    if not found then
163 >      DatabaseParams.Lines.Add(Name + '=' + Value);
164 >  end
165 >  else
166 >    DeleteParam(Name);
167 > end;
168 >
169 > procedure TIBDatabaseEditForm.DeleteParam(Name: string);
170 > var
171 >  i: Integer;
172 > begin
173 >    for i := 0 to DatabaseParams.Lines.Count - 1 do
174 >    begin
175 >      if (Pos(Name, LowerCase(DatabaseParams.Lines.Names[i])) = 1) then {mbcs ok}
176 >      begin
177 >        DatabaseParams.Lines.Delete(i);
178 >        break;
179 >      end;
180 >    end;
181 > end;
182 >
183 > function TIBDatabaseEditForm.Edit: Boolean;
184 > var
185 >  st: string;
186 >
187 >  procedure DecomposeDatabaseName;
188 >  var
189 >    Idx1, Idx2: Integer;
190 >    st: string;
191 >  begin
192 >    if Pos('\\', Database.DatabaseName) <> 0 then {do not localize}
193 >    begin
194 >      LocalRBtn.Checked := False;
195 >      RemoteRbtn.Checked := True;
196 >      Protocol.ItemIndex := 1;
197 >      st := copy(Database.DatabaseName, 3, Length(Database.DatabaseName));
198 >      Idx1 := Pos('\', st); {do not localize}
199 >      if Idx1 = 0 then
200 >        IBError(ibxeUnknownError, [nil])
201 >      else begin
202 >        ServerName.Text := Copy(st, 1, Idx1 - 1);
203 >        DatabaseName.Text:= Copy(st, Idx1 + 1, Length(st));
204 >      end;
205 >    end
206 >    else begin
207 >      Idx1 := Pos(':', Database.DatabaseName ); {do not localize}
208 >      If (Idx1 = 0) or (Idx1 = 2) then
209 >      begin
210 >        DatabaseName.Text := Database.DatabaseName;
211 >      end
212 >      else
213 >      begin
214 >        LocalRBtn.Checked := False;
215 >        RemoteRbtn.Checked := True;
216 >        Idx2 := Pos('@', Database.DatabaseName); {do not localize}
217 >        if Idx2 = 0 then
218 >        begin
219 >          Protocol.ItemIndex := 0;
220 >          ServerName.Text := copy(Database.DatabaseName, 1, Idx1 - 1);
221 >          DatabaseName.Text := copy(Database.DatabaseName, Idx1 + 1,
222 >            Length(Database.DatabaseName));
223 >        end
224 >        else begin
225 >          Protocol.ItemIndex := 2;
226 >          ServerName.Text := copy(Database.DatabaseName, 1, Idx2 - 1);
227 >          DatabaseName.Text := copy(Database.DatabaseName, Idx2 + 1,
228 >            Length(Database.DatabaseName));
229 >        end;
230 >      end;
231 >    end;
232 >  end;
233 > begin
234 >  DecomposeDatabaseName;
235 >  if Trim(Database.Params.Text) = '' then
236 >    DatabaseParams.Clear
237 >  else
238 >    DatabaseParams.Lines.Assign(Database.Params);
239 >  LoginPrompt.Checked := Database.LoginPrompt;
240 >  UserName.Text := GetParam('user_name');
241 >  Password.Text := GetParam('password');
242 >  SQLRole.Text := GetParam('sql_role');
243 >  st := GetParam('lc_ctype');
244 >  if (st <> '') then
245 >    CharacterSet.ItemIndex := CharacterSet.Items.IndexOf(st);
246 >  Result := False;
247 >  if ShowModal = mrOk then
248 >  begin
249 >    Database.DatabaseName := DatabaseName.Text;
250 >    if LocalRbtn.Checked then
251 >      DatabaseName.Text := Database.DatabaseName
252 >    else
253 >      case Protocol.ItemIndex of
254 >        0: Database.DatabaseName := Format('%s:%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
255 >        1: Database.DatabaseName := Format('\\%s\%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
256 >        2: Database.DatabaseName := Format('%s@%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
257 >      end;
258 >    Database.Params := DatabaseParams.Lines;
259 >    Database.LoginPrompt := LoginPrompt.Checked;
260 >    Result := True;
261 >  end;
262 > end;
263 >
264 > procedure TIBDatabaseEditForm.RemoteRbtnClick(Sender: TObject);
265 > begin
266 >  Browse.Enabled := False;
267 >  Label7.Enabled := True;
268 >  Label8.Enabled := True;
269 >  Protocol.Enabled := True;
270 >  ServerName.Enabled := True;
271 >  if Protocol.Text = '' then
272 >    Protocol.Text := 'TCP';
273 > end;
274 >
275 > procedure TIBDatabaseEditForm.BrowseClick(Sender: TObject);
276 > begin
277 >  with TOpenDialog.Create(Application) do
278 >    try
279 >      InitialDir := ExtractFilePath(DatabaseName.Text);
280 >      Filter := SDatabaseFilter;
281 >      if Execute then
282 >        DatabaseName.Text := FileName;
283 >    finally
284 >      Free
285 >    end;
286 > end;
287 >
288 > procedure TIBDatabaseEditForm.LocalRbtnClick(Sender: TObject);
289 > begin
290 >  Browse.Enabled := True;
291 >  Label7.Enabled := False;
292 >  Label8.Enabled := False;
293 >  ServerName.Enabled := False;
294 >  Protocol.Enabled := False;
295 > end;
296 >
297 > procedure TIBDatabaseEditForm.OKBtnClick(Sender: TObject);
298 > begin
299 >  ModalResult := mrNone;
300 >  if Database.Connected then
301 >  begin
302 >    if MessageDlg(SDisconnectDatabase, mtConfirmation,
303 >      mbOkCancel, 0) <> mrOk then Exit;
304 >    Database.Close;
305 >  end;
306 >  ModalResult := mrOk;
307 > end;
308 >
309 > procedure TIBDatabaseEditForm.FormCreate(Sender: TObject);
310 > begin
311 > //  HelpContext := hcDIBDataBaseEdit;
312 > end;
313 >
314 > procedure TIBDatabaseEditForm.HelpBtnClick(Sender: TObject);
315 > begin
316 >  Application.HelpContext(HelpContext);
317 > end;
318 >
319 > procedure TIBDatabaseEditForm.UserNameChange(Sender: TObject);
320 > begin
321 >  AddParam('user_name', UserName.Text);
322 > end;
323 >
324 > procedure TIBDatabaseEditForm.PasswordChange(Sender: TObject);
325 > begin
326 >  AddParam('password', Password.Text);
327 > end;
328 >
329 > procedure TIBDatabaseEditForm.SQLRoleChange(Sender: TObject);
330 > begin
331 >  AddParam('sql_role_name', SQLRole.Text);
332 > end;
333 >
334 > procedure TIBDatabaseEditForm.CharacterSetChange(Sender: TObject);
335 > begin
336 >  if (CharacterSet.Text <> 'None') then {do not localize}
337 >    AddParam('lc_ctype', CharacterSet.Text)
338 >  else
339 >    DeleteParam('lc_ctype');
340 > end;
341 >
342 > procedure TIBDatabaseEditForm.TestClick(Sender: TObject);
343 > var
344 >  tempDB : TIBDatabase;
345 > begin
346 >  Test.Enabled := false;
347 >  tempDB := TIBDatabase.Create(nil);
348 >  try
349 >    if LocalRbtn.Checked then
350 >      tempDB.DatabaseName := DatabaseName.Text
351 >    else
352 >      case Protocol.ItemIndex of
353 >        0: tempDB.DatabaseName := Format('%s:%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
354 >        1: tempDB.DatabaseName := Format('\\%s\%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
355 >        2: tempDB.DatabaseName := Format('%s@%s', [ServerName.Text, DatabaseName.Text]); {do not localize}
356 >      end;
357 >    tempDB.Params.Assign(DatabaseParams.Lines);
358 >    tempDB.LoginPrompt := LoginPrompt.Checked;
359 >    try
360 >      tempDB.Connected := true;
361 >      ShowMessage('Successful Connection');
362 >    except on E: Exception do
363 >      ShowMessage(E.Message)
364 >    end;
365 >  finally
366 >    tempDB.Free;
367 >    Test.Enabled := true;
368 >  end;
369 > end;
370 >
371 >
372 > end.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines