ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 209
Committed: Wed Mar 14 12:48:51 2018 UTC (6 years, 8 months ago) by tony
Content type: text/x-pascal
File size: 38083 byte(s)
Log Message:
Fixes Merged

File Contents

# Content
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 { IBX For Lazarus (Firebird Express) }
28 { Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
29 { Portions created by MWA Software are copyright McCallum Whyman }
30 { Associates Ltd 2011 - 2018 }
31 {************************************************************************}
32
33 unit IBDBReg;
34
35 {$MODE Delphi}
36
37 (*
38 * Compiler defines
39 *)
40 {$A+} (* Aligned records: On *)
41 {$B-} (* Short circuit boolean expressions: Off *)
42 {$H+} (* Huge Strings: On *)
43 {$J-} (* Modification of Typed Constants: Off *)
44 {$M+} (* Generate run-time type information: On *)
45 {$O+} (* Optimization: On *)
46 {$Q-} (* Overflow checks: Off *)
47 {$R-} (* Range checks: Off *)
48 {$T+} (* Typed address: On *)
49 {$W-} (* Always generate stack frames: Off *)
50 {$X+} (* Extended syntax: On *)
51 {$Z1} (* Minimum Enumeration Size: 1 Byte *)
52
53 interface
54
55 uses SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
56 DB, IBTable, IBDatabase, IBEventsEditor, LazarusPackageIntf,
57 IBUpdateSQL, IBUpdate, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor,
58 dbFieldLinkPropEditor, dbFieldListPropEditor, IBDialogs;
59
60 type
61
62 { TIBFileNameProperty
63 Property editor the DataBase Name property. Brings up the Open dialog }
64
65 TIBFileNameProperty = class(TStringProperty)
66 public
67 procedure Edit; override;
68 function GetAttributes: TPropertyAttributes; override;
69 end;
70
71 { TIBNameProperty
72 }
73 TIBNameProperty = class(TStringProperty)
74 public
75 function GetAttributes: TPropertyAttributes; override;
76 end;
77
78 { TIBStoredProcNameProperty
79 Editor for the TIBStoredProc.StoredProcName property. Displays a drop-down list of all
80 the StoredProcedures in the Database.}
81 TIBStoredProcNameProperty = class(TIBNameProperty)
82 public
83 procedure GetValues(Proc: TGetStrProc); override;
84 end;
85
86 { TIBPackageNameProperty
87 Editor for the TIBStoredProc.PackageName property. Displays a drop-down list of all
88 the StoredProcedures in the Database.}
89 TIBPackageNameProperty = class(TIBNameProperty)
90 public
91 procedure GetValues(Proc: TGetStrProc); override;
92 end;
93
94 { TIBTableNameProperty
95 Editor for the TIBTable.TableName property. Displays a drop-down list of all
96 the Tables in the Database.}
97 TIBTableNameProperty = class(TIBNameProperty)
98 public
99 procedure GetValues(Proc: TGetStrProc); override;
100 end;
101
102 { TDBStringProperty }
103
104 TDBStringProperty = class(TStringProperty)
105 private
106 function ConnecttoDB: boolean;
107 public
108 function GetAttributes: TPropertyAttributes; override;
109 procedure GetValueList(List: TStrings); virtual;
110 procedure GetValues(Proc: TGetStrProc); override;
111 procedure Edit; override;
112 end;
113
114 { TIBIndexFieldNamesProperty }
115
116 TIBIndexFieldNamesProperty = class(TDBStringProperty)
117 public
118 procedure GetValueList(List: TStrings); override;
119 end;
120
121 TIBIndexNameProperty = class(TDBStringProperty)
122 public
123 procedure GetValueList(List: TStrings); override;
124 end;
125
126 { TIBDatabaseEditor }
127
128 TIBDatabaseEditor = class(TComponentEditor)
129 procedure ExecuteVerb(Index: Integer); override;
130 function GetVerb(Index: Integer): string; override;
131 function GetVerbCount: Integer; override;
132 end;
133
134 { TIBTransactionEditor }
135
136 TIBTransactionEditor = class(TComponentEditor)
137 public
138 procedure ExecuteVerb(Index: Integer); override;
139 function GetVerb(Index: Integer): string; override;
140 function GetVerbCount: Integer; override;
141 end;
142
143 { TIBArrayGridEditor }
144
145 TIBArrayGridEditor = class(TComponentEditor)
146 public
147 procedure ExecuteVerb(Index: Integer); override;
148 function GetVerb(Index: Integer): string; override;
149 function GetVerbCount: Integer; override;
150 end;
151
152 { TIBQueryEditor }
153
154 TIBQueryEditor = class(TFieldsComponentEditor)
155 public
156 procedure ExecuteVerb(Index: Integer); override;
157 function GetVerb(Index: Integer): string; override;
158 function GetVerbCount: Integer; override;
159 end;
160
161 { TIBStoredProcEditor }
162
163 TIBStoredProcEditor = class(TFieldsComponentEditor)
164 public
165 procedure ExecuteVerb(Index: Integer); override;
166 function GetVerb(Index: Integer): string; override;
167 function GetVerbCount: Integer; override;
168 end;
169
170 { TIBDataSetEditor }
171
172 TIBDataSetEditor = class(TFieldsComponentEditor)
173 public
174 procedure ExecuteVerb(Index: Integer); override;
175 function GetVerb(Index: Integer): string; override;
176 function GetVerbCount: Integer; override;
177 end;
178
179 { TIBUpdateSQLEditor }
180
181 TIBUpdateSQLEditor = class(TComponentEditor)
182 public
183 procedure ExecuteVerb(Index: Integer); override;
184 function GetVerb(Index: Integer): string; override;
185 function GetVerbCount: Integer; override;
186 end;
187
188 { TIBSQLEditor }
189
190 TIBSQLEditor = class(TComponentEditor)
191 public
192 procedure ExecuteVerb(Index: Integer); override;
193 function GetVerb(Index: Integer): string; override;
194 function GetVerbCount: Integer; override;
195 end;
196
197 { TIBServiceEditor}
198
199 TIBServiceEditor = class(TComponentEditor)
200 public
201 procedure ExecuteVerb(Index: Integer); override;
202 function GetVerb(Index: Integer): string; override;
203 function GetVerbCount: Integer; override;
204 end;
205
206 { TIBXServiceEditor }
207
208 TIBXServiceEditor = class(TComponentEditor)
209 public
210 procedure ExecuteVerb(Index: Integer); override;
211 function GetVerb(Index: Integer): string; override;
212 function GetVerbCount: Integer; override;
213 end;
214
215 TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
216 end;
217
218 { TIBTableFieldLinkProperty }
219
220 TIBTableFieldLinkProperty = class(TFieldLinkProperty)
221 private
222 FTable: TIBTable;
223 protected
224 function GetIndexDefs: TIndexDefs; override;
225 function GetIndexFieldNames: string; override;
226 function GetMasterFields: string; override;
227 procedure SetIndexFieldNames(const Value: string); override;
228 procedure SetMasterFields(const Value: string); override;
229 public
230 procedure Edit; override;
231 end;
232
233 { TSQLPropertyEditor }
234
235 TSQLPropertyEditor = class(TStringsPropertyEditor)
236 public
237 function GetAttributes: TPropertyAttributes; override;
238 end;
239
240 { TIBQuerySQLProperty }
241
242 TIBQuerySQLProperty = class(TSQLPropertyEditor)
243 public
244 procedure Edit; override;
245 end;
246
247 {TIBSQLSQLPropertyEditor }
248
249 TIBSQLSQLPropertyEditor = class(TSQLPropertyEditor)
250 public
251 procedure Edit; override;
252 end;
253
254 { TIBDatasetSQLProperty }
255
256 TIBDatasetSQLProperty = class(TSQLPropertyEditor)
257 public
258 procedure Edit; override;
259 end;
260
261 { TIBSQLProperty }
262
263 TIBSQLProperty = class(TSQLPropertyEditor)
264 public
265 procedure Edit; override;
266 end;
267
268 { TUpdateSQLPropertyEditor }
269
270 TUpdateSQLPropertyEditor = class(TSQLPropertyEditor)
271 protected
272 FIBUpdateSQL: TIBUpdateSQL;
273 FDatabase: TIBDatabase;
274 function GetObjects: boolean;
275 end;
276
277 { TIBUpdateSQLProperty }
278
279 TIBUpdateSQLProperty = class(TSQLPropertyEditor)
280 public
281 procedure Edit; override;
282 end;
283
284 { TIBRefreshSQLProperty }
285
286 TIBRefreshSQLProperty = class(TSQLPropertyEditor)
287 public
288 procedure Edit; override;
289 end;
290
291 { TIBInsertSQLProperty }
292
293 TIBInsertSQLProperty = class(TSQLPropertyEditor)
294 public
295 procedure Edit; override;
296 end;
297
298 { TIBDeleteSQLProperty }
299
300 TIBDeleteSQLProperty = class(TSQLPropertyEditor)
301 public
302 procedure Edit; override;
303 end;
304
305 { TIBUpdateSQLUpdateProperty }
306
307 TIBUpdateSQLUpdateProperty = class(TUpdateSQLPropertyEditor)
308 public
309 procedure Edit; override;
310 end;
311
312 { TIBUpdateSQLRefreshSQLProperty }
313
314 TIBUpdateSQLRefreshSQLProperty = class(TUpdateSQLPropertyEditor)
315 public
316 procedure Edit; override;
317 end;
318
319 { TIBUpdateSQLInsertSQLProperty }
320
321 TIBUpdateSQLInsertSQLProperty = class(TUpdateSQLPropertyEditor)
322 public
323 procedure Edit; override;
324 end;
325
326 { TIBUpdateSQLDeleteProperty }
327
328 TIBUpdateSQLDeleteProperty = class(TUpdateSQLPropertyEditor)
329 public
330 function GetAttributes: TPropertyAttributes; override;
331 procedure Edit; override;
332 end;
333
334 { TIBUpdateRefreshSQLProperty }
335
336 TIBUpdateRefreshSQLProperty = class(TSQLPropertyEditor)
337 protected
338 FIBUpdate: TIBUpdate;
339 FDatabase: TIBDatabase;
340 function GetObjects: boolean;
341 public
342 procedure Edit; override;
343 end;
344
345
346 { TIBEventListProperty }
347
348 TIBEventListProperty = class(TClassProperty)
349 public
350 function GetAttributes: TPropertyAttributes; override;
351 procedure Edit; override;
352 end;
353
354 {TIBGeneratorProperty}
355
356 TIBGeneratorProperty = class(TPersistentPropertyEditor)
357 public
358 function GetAttributes: TPropertyAttributes; override;
359 procedure Edit; override;
360 end;
361
362 { TDBDynamicGridFieldProperty }
363
364 TDBDynamicGridFieldProperty = class(TFieldProperty)
365 public
366 procedure FillValues(const Values: TStringList); override;
367 end;
368
369 { TDBLookupPropertiesGridFieldProperty }
370
371 TDBLookupPropertiesGridFieldProperty = class(TFieldProperty)
372 public
373 procedure FillValues(const Values: TStringList); override;
374 end;
375
376 { TIBTreeViewFieldProperty }
377
378 TIBTreeViewFieldProperty = class(TFieldProperty)
379 public
380 procedure FillValues(const Values: TStringList); override;
381 end;
382
383 { TIBDynamicGridIndexNamesProperty }
384
385 TIBDynamicGridIndexNamesProperty = class(TIndexFieldNamesProperty)
386 protected
387 function GetFieldDefs: TFieldDefs; override;
388 function GetIndexFieldNames: string; override;
389 procedure SetIndexFieldNames(const Value: string); override;
390 end;
391
392 { TIBFieldDefsProperty }
393
394 TIBFieldDefsProperty = class(TCollectionPropertyEditor)
395 public
396 procedure Edit; override;
397 end;
398
399 { TIBIndexDefsProperty }
400
401 TIBIndexDefsProperty = class(TCollectionPropertyEditor)
402 public
403 procedure Edit; override;
404 end;
405
406
407 procedure Register;
408
409 implementation
410
411 uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
412 IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
413 IBServices, IBXServices, IBDatabaseEdit, IBTransactionEdit,
414 IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
415 IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
416 IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
417 IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
418 IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
419 IBArrayGrid, IBVersion, IBDataOutput, IBXServiceEditor;
420
421 const
422 IBPalette1 = 'Firebird'; {do not localize}
423 IBPalette2 = 'Firebird Legacy Admin'; {do not localize}
424 IBPalette3 = 'Firebird Data Controls'; {do not localize}
425 IBPalette4 = 'Firebird Admin'; {do not localize}
426
427 resourcestring
428 SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
429 SEditSQL = 'Edit SQL';
430 SIBSQLEditor = 'IBSQL Editor';
431 SIBServiceEditor = 'Edit IB Service';
432 SIBUpdateSQLEditor = '&UpdateSQL Editor...';
433 SIBDataSetEditor = '&Dataset Editor...';
434 SExecute = 'E&xecute';
435 SIBDatabaseEditor = 'Da&tabase Editor...';
436 SIBTransactionEditor = '&Transaction Editor...';
437 SIBUpdateLayout = 'Update Layout';
438
439 procedure Register;
440 begin
441 if not TryIBLoad then
442 begin
443 MessageDlg('IBX is unable to locate the Firebird Library - have you remembered to install it?',mtError,[mbOK],0);
444 Exit;
445 end;
446
447 RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
448 TIBSmallintField, TIBIntegerField, TIBLargeIntField]);
449 {$if lcl_fullversion < 01010000}
450 {see http://bugs.freepascal.org/view.php?id=19035 }
451 RegisterNoIcon([TIntegerField]);
452 {$endif}
453 RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
454 TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBUpdate, TIBEvents,
455 TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
456 TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
457 TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
458 if FirebirdAPI.HasServiceAPI then
459 begin
460 RegisterComponents(IBPalette4, [TIBXServicesConnection, TIBXConfigService,
461 TIBXClientSideBackupService, TIBXServerSideBackupService,
462 TIBXClientSideRestoreService, TIBXServerSideRestoreService,
463 TIBXValidationService, TIBXOnlineValidationService, TIBXStatisticalService,
464 TIBXLogService, TIBXSecurityService, TIBXServerProperties,
465 TIBXLimboTransactionResolutionService,TIBXServicesUserList, TIBXServicesLimboTransactionsList]);
466 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
467 TIBRestoreService, TIBValidationService,
468 TIBOnlineValidationService, TIBStatisticalService,
469 TIBLogService, TIBSecurityService, TIBServerProperties]);
470 end;
471
472 RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
473
474 RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
475 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
476 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
477 RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
478 RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
479 RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
480 RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
481 RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
482 RegisterPropertyEditor(TypeInfo(TFieldDefs), TIBTable, 'FieldDefs', TIBFieldDefsProperty); {do not localize}
483 RegisterPropertyEditor(TypeInfo(TIndexDefs), TIBTable, 'IndexDefs', TIBIndexDefsProperty); {do not localize}
484 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
485 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
486 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
487 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'InsertSQL', TIBInsertSQLProperty); {do not localize}
488 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'RefreshSQL', TIBRefreshSQLProperty); {do not localize}
489 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'DeleteSQL', TIBDeleteSQLProperty); {do not localize}
490 RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
491 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'RefreshSQL', TIBUpdateSQLRefreshSQLProperty); {do not localize}
492 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
493 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
494 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
495 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
496 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
497 RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
498 RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
499 RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty); {do not localize}
500
501 RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
502 RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
503 RegisterComponentEditor(TIBUpdateSQL, TIBUpdateSQLEditor);
504 RegisterComponentEditor(TIBDataSet, TIBDataSetEditor);
505 RegisterComponentEditor(TIBQuery, TIBQueryEditor);
506 RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
507 RegisterComponentEditor(TIBSQL, TIBSQLEditor);
508 RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
509 RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
510 RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
511
512
513 {Firebird Data Access Controls}
514 RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'KeyField', TDBDynamicGridFieldProperty);
515 RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'ListField', TDBDynamicGridFieldProperty);
516 RegisterPropertyEditor(TypeInfo(string), TIBDynamicGrid, 'IndexFieldNames', TIBDynamicGridIndexNamesProperty);
517 RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'DataFieldName', TDBLookupPropertiesGridFieldProperty);
518 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'KeyField', TIBTreeViewFieldProperty);
519 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'TextField', TIBTreeViewFieldProperty);
520 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
521 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
522 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
523 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
524
525 IBGUIInterface := TIBDSLCLInterface.Create;
526 end;
527
528 procedure LoadDataSourceFields(DataSource: TDataSource; List: TStrings);
529 var
530 DataSet: TDataSet;
531 i: Integer;
532 begin
533 if Assigned(DataSource) then
534 begin
535 DataSet := DataSource.DataSet;
536 if Assigned(DataSet) then
537 begin
538 if DataSet.Fields.Count > 0 then
539 DataSet.GetFieldNames(List)
540 else
541 begin
542 DataSet.FieldDefs.Update;
543 for i := 0 to DataSet.FieldDefs.Count - 1 do
544 List.Add(DataSet.FieldDefs[i].Name);
545 end;
546 end;
547 end;
548 end;
549
550 { TIBXServiceEditor }
551
552 procedure TIBXServiceEditor.ExecuteVerb(Index: Integer);
553 begin
554 if Index < inherited GetVerbCount then
555 inherited ExecuteVerb(Index) else
556 begin
557 Dec(Index, inherited GetVerbCount);
558 case Index of
559 0 : if IBXServiceEditor.EditIBXService(TIBXServicesConnection(Component)) then Designer.Modified;
560 end;
561 end;
562 end;
563
564 function TIBXServiceEditor.GetVerb(Index: Integer): string;
565 begin
566 if Index < inherited GetVerbCount then
567 Result := inherited GetVerb(Index) else
568 begin
569 Dec(Index, inherited GetVerbCount);
570 case Index of
571 0: Result := SIBServiceEditor;
572 1 : Result := SInterbaseExpressVersion;
573 end;
574 end;
575 end;
576
577 function TIBXServiceEditor.GetVerbCount: Integer;
578 begin
579 Result := inherited GetVerbCount + 2;
580 end;
581
582 { TIBUpdateRefreshSQLProperty }
583
584 function TIBUpdateRefreshSQLProperty.GetObjects: boolean;
585 begin
586 Result := false;
587 FIBUpdate := GetComponent(0) as TIBUpdate;
588 if not assigned(FIBUpdate) or not assigned(FIBUpdate.DataSet) then
589 Exit;
590 FDatabase := nil;
591 if FIBUpdate.DataSet is TIBQuery then
592 begin
593 FDatabase := (FIBUpdate.DataSet as TIBQuery).Database;
594 Result := true
595 end;
596 end;
597
598 procedure TIBUpdateRefreshSQLProperty.Edit;
599 begin
600 GetObjects;
601 if IBRefreshSQLEditor.EditSQL(FIBUpdate.DataSet,FIBUpdate.RefreshSQL) then Modified;
602 end;
603
604 { TIBPackageNameProperty }
605
606 procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
607 var
608 StoredProc : TIBStoredProc;
609 i : integer;
610 begin
611 StoredProc := GetComponent(0) as TIBStoredProc;
612 if StoredProc.Database = nil then
613 Exit;
614
615 with StoredProc do
616 try
617 for I := 0 to PackageNames.Count - 1 do
618 Proc (PackageNames[i]);
619 except on E: Exception do
620 MessageDlg(E.Message,mtError,[mbOK],0)
621 end;
622 end;
623
624 { TIBIndexDefsProperty }
625
626 procedure TIBIndexDefsProperty.Edit;
627 var IndexDefs: TIndexDefs;
628 begin
629 IndexDefs := TIndexDefs(GetObjectValue);
630 if IndexDefs <> nil then
631 IndexDefs.Update;
632 inherited Edit;
633 end;
634
635 { TIBFieldDefsProperty }
636
637 procedure TIBFieldDefsProperty.Edit;
638 var FieldDefs: TFieldDefs;
639 begin
640 FieldDefs := TFieldDefs(GetObjectValue);
641 if FieldDefs <> nil then
642 FieldDefs.Update;
643 inherited Edit;
644 end;
645
646 { TIBArrayGridEditor }
647
648 procedure TIBArrayGridEditor.ExecuteVerb(Index: Integer);
649 begin
650 if Index < inherited GetVerbCount then
651 inherited ExecuteVerb(Index)
652 else
653 case Index of
654 0: TIBArrayGrid(Component).UpdateLayout;
655 end;
656 end;
657
658 function TIBArrayGridEditor.GetVerb(Index: Integer): string;
659 begin
660 if Index < inherited GetVerbCount then
661 Result := inherited GetVerb(Index) else
662 begin
663 Dec(Index, inherited GetVerbCount);
664 case Index of
665 0: Result := SIBUpdateLayout;
666 1 : Result := SInterbaseExpressVersion ;
667 end;
668 end;
669 end;
670
671 function TIBArrayGridEditor.GetVerbCount: Integer;
672 begin
673 Result := 2;
674 end;
675
676 { TDBLookupPropertiesGridFieldProperty }
677
678 procedure TDBLookupPropertiesGridFieldProperty.FillValues(
679 const Values: TStringList);
680 var
681 P: TDBLookupProperties;
682 begin
683 P :=TDBLookupProperties(GetComponent(0));
684 if not (P is TDBLookupProperties) then exit;
685 LoadDataSourceFields(TIBDynamicGrid(P.Owner.Grid).DataSource, Values);
686 end;
687
688 { TIBTreeViewFieldProperty }
689
690 procedure TIBTreeViewFieldProperty.FillValues(const Values: TStringList);
691 var ListSource: TDataSource;
692 begin
693 ListSource := TIBTreeView(GetComponent(0)).DataSource;
694 LoadDataSourceFields(ListSource, Values);
695 end;
696
697 { TIBDynamicGridIndexNamesProperty }
698
699 function TIBDynamicGridIndexNamesProperty.GetFieldDefs: TFieldDefs;
700 var Grid: TIBDynamicGrid;
701 begin
702 Result := nil;
703 Grid := TIBDynamicGrid(GetComponent(0));
704 if assigned(Grid.DataSource) and assigned(Grid.DataSource.DataSet) then
705 Result := Grid.DataSource.DataSet.FieldDefs
706 end;
707
708 function TIBDynamicGridIndexNamesProperty.GetIndexFieldNames: string;
709 var Grid: TIBDynamicGrid;
710 begin
711 Grid := TIBDynamicGrid(GetComponent(0));
712 Result := Grid.IndexFieldNames
713 end;
714
715 procedure TIBDynamicGridIndexNamesProperty.SetIndexFieldNames(
716 const Value: string);
717 var Grid: TIBDynamicGrid;
718 begin
719 Grid := TIBDynamicGrid(GetComponent(0));
720 Grid.IndexFieldNames := Value
721 end;
722
723 { TDBDynamicGridFieldProperty }
724
725 procedure TDBDynamicGridFieldProperty.FillValues(const Values: TStringList);
726 var
727 P: TDBLookupProperties;
728 begin
729 P :=TDBLookupProperties(GetComponent(0));
730 if not (P is TDBLookupProperties) then exit;
731 LoadDataSourceFields(P.ListSource, Values);
732 end;
733
734 { TIBServiceEditor }
735
736 procedure TIBServiceEditor.ExecuteVerb(Index: Integer);
737 begin
738 if Index < inherited GetVerbCount then
739 inherited ExecuteVerb(Index) else
740 begin
741 Dec(Index, inherited GetVerbCount);
742 case Index of
743 0 : if ibserviceeditor.EditIBService(TIBCustomService(Component)) then Designer.Modified;
744 end;
745 end;
746 end;
747
748 function TIBServiceEditor.GetVerb(Index: Integer): string;
749 begin
750 if Index < inherited GetVerbCount then
751 Result := inherited GetVerb(Index) else
752 begin
753 Dec(Index, inherited GetVerbCount);
754 case Index of
755 0: Result := SIBServiceEditor;
756 1 : Result := SInterbaseExpressVersion;
757 end;
758 end;
759 end;
760
761 function TIBServiceEditor.GetVerbCount: Integer;
762 begin
763 Result := inherited GetVerbCount + 2;
764 end;
765
766 { TIBFileNameProperty }
767 procedure TIBFileNameProperty.Edit;
768 begin
769 with TOpenDialog.Create(Application) do
770 try
771 InitialDir := ExtractFilePath(GetStrValue);
772 Filter := SDatabaseFilter; {do not localize}
773 if Execute then
774 SetStrValue(FileName);
775 finally
776 Free
777 end;
778 end;
779
780 function TIBFileNameProperty.GetAttributes: TPropertyAttributes;
781 begin
782 Result := [paDialog];
783 end;
784
785 { TIBNameProperty }
786
787 function TIBNameProperty.GetAttributes: TPropertyAttributes;
788 begin
789 Result := [paValueList, paSortList];
790 end;
791
792 { TIBStoredProcNameProperty }
793
794 procedure TIBStoredProcNameProperty.GetValues(Proc: TGetStrProc);
795 var
796 StoredProc : TIBStoredProc;
797 i : integer;
798 begin
799 StoredProc := GetComponent(0) as TIBStoredProc;
800 if StoredProc.Database = nil then
801 Exit;
802
803 with StoredProc do
804 try
805 for I := 0 to StoredProcedureNames.Count - 1 do
806 Proc (StoredProcedureNames[i]);
807 except on E: Exception do
808 MessageDlg(E.Message,mtError,[mbOK],0)
809 end;
810 end;
811
812 { TIBTableNameProperty }
813
814 procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc);
815 var
816 Table : TIBTable;
817 i : integer;
818 begin
819 Table := GetComponent(0) as TIBTable;
820 if Table.Database = nil then
821 Exit;
822 with Table do
823 for I := 0 to TableNames.Count - 1 do
824 Proc (TableNames[i]);
825 end;
826
827 { TDBStringProperty }
828
829 function TDBStringProperty.ConnecttoDB: boolean;
830 var DataSet: TIBCustomDataSet;
831 begin
832 Result := false;
833 DataSet := (GetComponent(0) as TIBCustomDataSet);
834 if assigned(Dataset.Database) then
835 begin
836 try
837 DataSet.Database.Connected := true;
838 except on E: Exception do
839 ShowMessage(E.Message)
840 end;
841 Result := DataSet.Database.Connected
842 end;
843 end;
844
845 function TDBStringProperty.GetAttributes: TPropertyAttributes;
846 begin
847 Result := [paValueList, paSortList, paMultiSelect];
848 end;
849
850 procedure TDBStringProperty.GetValueList(List: TStrings);
851 begin
852 end;
853
854 procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
855 var
856 I: Integer;
857 Values: TStringList;
858 begin
859 if not ConnecttoDB then Exit;
860 Values := TStringList.Create;
861 try
862 GetValueList(Values);
863 for I := 0 to Values.Count - 1 do Proc(Values[I]);
864 finally
865 Values.Free;
866 end;
867 end;
868
869 procedure TDBStringProperty.Edit;
870 begin
871 if ConnecttoDB then
872 inherited Edit;
873 end;
874
875 { Utility Functions }
876
877 function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent;
878 var
879 PropInfo: PPropInfo;
880 begin
881 Result := nil;
882 PropInfo := TypInfo.GetPropInfo(Instance.ClassInfo, PropName);
883 if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) then
884 Result := TObject(GetOrdProp(Instance, PropInfo)) as TPersistent;
885 end;
886
887 function GetIndexDefs(Component: TPersistent): TIndexDefs;
888 var
889 DataSet: TDataSet;
890 begin
891 DataSet := Component as TDataSet;
892 Result := GetPropertyValue(DataSet, 'IndexDefs') as TIndexDefs; {do not localize}
893 if Assigned(Result) then
894 begin
895 Result.Updated := False;
896 Result.Update;
897 end;
898 end;
899
900 { TIBIndexFieldNamesProperty }
901
902 procedure TIBIndexFieldNamesProperty.GetValueList(List: TStrings);
903 var
904 I: Integer;
905 IndexDefs: TIndexDefs;
906 begin
907 IndexDefs := GetIndexDefs(GetComponent(0));
908 for I := 0 to IndexDefs.Count - 1 do
909 with IndexDefs[I] do
910 if (Options * [ixExpression, ixDescending] = []) and (Fields <> '') then
911 List.Add(Fields);
912 end;
913
914
915 { TIBIndexNameProperty }
916
917 procedure TIBIndexNameProperty.GetValueList(List: TStrings);
918 begin
919 GetIndexDefs(GetComponent(0)).GetItemNames(List);
920 end;
921
922 { TSQLPropertyEditor }
923
924 function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
925 begin
926 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
927 end;
928
929 { TIBQuerySQLProperty }
930
931 procedure TIBQuerySQLProperty.Edit;
932 var
933 Query: TIBQuery;
934 begin
935 Query := GetComponent(0) as TIBQuery;
936 if IBSelectSQLEditor.EditSQL(Query,Query.SQL) then Modified;
937 end;
938
939 { TIBDatasetSQLProperty }
940
941 procedure TIBDatasetSQLProperty.Edit;
942 var
943 IBDataset: TIBDataset;
944 begin
945 IBDataset := GetComponent(0) as TIBDataset;
946 if IBSelectSQLEditor.EditSQL(IBDataSet,IBDataSet.SelectSQL) then Modified;
947 end;
948
949 { TIBSQLProperty }
950
951 procedure TIBSQLProperty.Edit;
952 var
953 IBSQL: TIBSQL;
954 begin
955 IBSQL := GetComponent(0) as TIBSQL;
956 if IBSQLEditor.EditSQL(IBSQL) then Modified;
957 end;
958
959 { TIBUpdateSQLEditor }
960
961 procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
962 begin
963 if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
964 end;
965
966 function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
967 begin
968 case Index of
969 0 : Result := SIBUpdateSQLEditor;
970 1: Result := SInterbaseExpressVersion ;
971 end;
972 end;
973
974 function TIBUpdateSQLEditor.GetVerbCount: Integer;
975 begin
976 Result := 2;
977 end;
978
979 { TIBDataSetEditor }
980
981 procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
982 begin
983 if Index < inherited GetVerbCount then
984 inherited ExecuteVerb(Index) else
985 begin
986 Dec(Index, inherited GetVerbCount);
987 case Index of
988 0:
989 if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
990 Designer.Modified;
991 1: (Component as TIBDataSet).ExecSQL;
992 end;
993 end;
994 end;
995
996 function TIBDataSetEditor.GetVerb(Index: Integer): string;
997 begin
998 if Index < inherited GetVerbCount then
999 Result := inherited GetVerb(Index) else
1000 begin
1001 Dec(Index, inherited GetVerbCount);
1002 case Index of
1003 0: Result := SIBDataSetEditor;
1004 1: Result := SExecute;
1005 2: Result := SInterbaseExpressVersion ;
1006 end;
1007 end;
1008 end;
1009
1010 function TIBDataSetEditor.GetVerbCount: Integer;
1011 begin
1012 Result := inherited GetVerbCount + 3;
1013 end;
1014
1015 { TIBEventListProperty }
1016
1017 function TIBEventListProperty.GetAttributes: TPropertyAttributes;
1018 begin
1019 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
1020 end;
1021
1022 procedure TIBEventListProperty.Edit;
1023 var
1024 Events: TStrings;
1025 IBEvents: TIBEvents;
1026 begin
1027 IBEvents := GetComponent(0) as TIBEvents;
1028 Events := TStringList.Create;
1029 try
1030 Events.Assign( IBEvents.Events);
1031 if EditAlerterEvents( Events) then
1032 begin
1033 IBEvents.Events.Assign(Events);
1034 Modified
1035 end;
1036 finally
1037 Events.Free;
1038 end;
1039 end;
1040
1041 { TIBDatabaseEditor }
1042 procedure TIBDatabaseEditor.ExecuteVerb(Index: Integer);
1043 begin
1044 if Index < inherited GetVerbCount then
1045 inherited ExecuteVerb(Index) else
1046 begin
1047 Dec(Index, inherited GetVerbCount);
1048 case Index of
1049 0 : if EditIBDatabase(TIBDatabase(Component)) then Designer.Modified;
1050 end;
1051 end;
1052 end;
1053
1054 function TIBDatabaseEditor.GetVerb(Index: Integer): string;
1055 begin
1056 if Index < inherited GetVerbCount then
1057 Result := inherited GetVerb(Index) else
1058 begin
1059 Dec(Index, inherited GetVerbCount);
1060 case Index of
1061 0: Result := SIBDatabaseEditor;
1062 1 : Result := SInterbaseExpressVersion ;
1063 end;
1064 end;
1065 end;
1066
1067 function TIBDatabaseEditor.GetVerbCount: Integer;
1068 begin
1069 Result := inherited GetVerbCount + 2;
1070 end;
1071
1072 { TIBTransactionEditor }
1073
1074 procedure TIBTransactionEditor.ExecuteVerb(Index: Integer);
1075 begin
1076 case Index of
1077 0: if EditIBTransaction(TIBTransaction(Component)) then Designer.Modified;
1078 end;
1079 end;
1080
1081 function TIBTransactionEditor.GetVerb(Index: Integer): string;
1082 begin
1083 case Index of
1084 0: Result := SIBTransactionEditor;
1085 1: Result := SInterbaseExpressVersion ;
1086 end;
1087 end;
1088
1089 function TIBTransactionEditor.GetVerbCount: Integer;
1090 begin
1091 Result := 2;
1092 end;
1093
1094 { TIBQueryEditor }
1095
1096 procedure TIBQueryEditor.ExecuteVerb(Index: Integer);
1097 var
1098 Query: TIBQuery;
1099 begin
1100 if Index < inherited GetVerbCount then
1101 inherited ExecuteVerb(Index) else
1102 begin
1103 Query := Component as TIBQuery;
1104 Dec(Index, inherited GetVerbCount);
1105 case Index of
1106 0: Query.ExecSQL;
1107 1: if ibselectsqleditor.EditSQL(Query,Query.SQL) then Designer.Modified;
1108 end;
1109 end;
1110 end;
1111
1112 function TIBQueryEditor.GetVerb(Index: Integer): string;
1113 begin
1114 if Index < inherited GetVerbCount then
1115 Result := inherited GetVerb(Index) else
1116 begin
1117 Dec(Index, inherited GetVerbCount);
1118 case Index of
1119 0: Result := SExecute;
1120 1: Result := SEditSQL;
1121 2: Result := SInterbaseExpressVersion ;
1122 end;
1123 end;
1124 end;
1125
1126 function TIBQueryEditor.GetVerbCount: Integer;
1127 begin
1128 Result := inherited GetVerbCount + 3;
1129 end;
1130
1131 { TIBStoredProcEditor }
1132
1133 procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
1134 begin
1135 if Index < inherited GetVerbCount then
1136 inherited ExecuteVerb(Index) else
1137 begin
1138 Dec(Index, inherited GetVerbCount);
1139 if Index = 0 then (Component as TIBStoredProc).ExecProc;
1140 end;
1141 end;
1142
1143 function TIBStoredProcEditor.GetVerb(Index: Integer): string;
1144 begin
1145 if Index < inherited GetVerbCount then
1146 Result := inherited GetVerb(Index) else
1147 begin
1148 Dec(Index, inherited GetVerbCount);
1149 case Index of
1150 0: Result := SExecute;
1151 1: Result := SInterbaseExpressVersion ;
1152 end;
1153 end;
1154 end;
1155
1156 function TIBStoredProcEditor.GetVerbCount: Integer;
1157 begin
1158 Result := inherited GetVerbCount + 2;
1159 end;
1160
1161 { TIBTableFieldLinkProperty }
1162
1163 procedure TIBTableFieldLinkProperty.Edit;
1164 begin
1165 FTable := DataSet as TIBTable;
1166 if assigned(FTable.Database) then
1167 FTable.Database.Connected := true;
1168 inherited Edit;
1169 end;
1170
1171 function TIBTableFieldLinkProperty.GetIndexDefs: TIndexDefs;
1172 begin
1173 Result := FTable.IndexDefs
1174 end;
1175
1176 function TIBTableFieldLinkProperty.GetIndexFieldNames: string;
1177 begin
1178 Result := FTable.IndexFieldNames;
1179 end;
1180
1181 function TIBTableFieldLinkProperty.GetMasterFields: string;
1182 begin
1183 Result := FTable.MasterFields;
1184 end;
1185
1186 procedure TIBTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
1187 begin
1188 FTable.IndexFieldNames := Value;
1189 end;
1190
1191 procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string);
1192 begin
1193 FTable.MasterFields := Value;
1194 end;
1195
1196 { TIBUpdateSQLProperty }
1197
1198 procedure TIBUpdateSQLProperty.Edit;
1199 var
1200 IBDataset: TIBDataset;
1201 begin
1202 IBDataset := GetComponent(0) as TIBDataset;
1203 if IBModifySQLEditor.EditSQL(IBDataSet,IBDataSet.ModifySQL) then Modified;
1204 end;
1205
1206 { TIBUpdateSQLUpdateProperty }
1207
1208 procedure TIBUpdateSQLUpdateProperty.Edit;
1209 begin
1210 GetObjects;
1211 if IBModifySQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.ModifySQL) then Modified;
1212 end;
1213
1214 { TIBRefreshSQLProperty }
1215
1216 procedure TIBRefreshSQLProperty.Edit;
1217 var
1218 IBDataset: TIBDataset;
1219 begin
1220 IBDataset := GetComponent(0) as TIBDataset;
1221 if IBRefreshSQLEditor.EditSQL(IBDataSet,IBDataSet.RefreshSQL) then Modified;
1222 end;
1223
1224 { TIBUpdateSQLRefreshSQLProperty }
1225
1226 procedure TIBUpdateSQLRefreshSQLProperty.Edit;
1227 begin
1228 GetObjects;
1229 if IBRefreshSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.RefreshSQL) then Modified;
1230 end;
1231
1232 { TIBDeleteSQLProperty }
1233
1234 procedure TIBDeleteSQLProperty.Edit;
1235 var
1236 IBDataset: TIBDataSet;
1237 begin
1238 IBDataset := GetComponent(0) as TIBDataSet;
1239 if IBDeleteSQLEditor.EditSQL(IBDataSet,IBDataSet.DeleteSQL) then Modified;
1240 end;
1241
1242 { TIBUpdateSQLDeleteProperty }
1243
1244 function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
1245 begin
1246 Result:=inherited GetAttributes;
1247 end;
1248
1249 procedure TIBUpdateSQLDeleteProperty.Edit;
1250 begin
1251 GetObjects;
1252 if IBDeleteSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.DeleteSQL) then Modified;
1253 end;
1254
1255 { TUpdateSQLPropertyEditor }
1256
1257 function TUpdateSQLPropertyEditor.GetObjects: boolean;
1258 begin
1259 Result := false;
1260 FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
1261 if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
1262 Exit;
1263 FDatabase := nil;
1264 if FIBUpdateSQL.DataSet is TIBQuery then
1265 begin
1266 FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
1267 Result := true
1268 end;
1269 end;
1270
1271 { TIBInsertSQLProperty }
1272
1273 procedure TIBInsertSQLProperty.Edit;
1274 var
1275 IBDataset: TIBDataSet;
1276 begin
1277 IBDataset := GetComponent(0) as TIBDataSet;
1278 if IBInsertSQLEditor.EditSQL(IBDataSet,IBDataSet.InsertSQL) then Modified;
1279 end;
1280
1281 { TIBUpdateSQLInsertSQLProperty }
1282
1283 procedure TIBUpdateSQLInsertSQLProperty.Edit;
1284 begin
1285 GetObjects;
1286 if IBInsertSQLEditor.EditSQL(FIBUpdateSQL.Dataset,FIBUpdateSQL.InsertSQL) then Modified;
1287 end;
1288
1289 { TIBGeneratorProperty }
1290
1291 function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
1292 begin
1293 Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
1294 end;
1295
1296 procedure TIBGeneratorProperty.Edit;
1297 begin
1298 if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
1299 end;
1300
1301 { TIBSQLEditor }
1302
1303 procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
1304 begin
1305 if IBSQLEditor.EditSQL(TIBSQL(Component)) then Modified;
1306 end;
1307
1308 function TIBSQLEditor.GetVerb(Index: Integer): string;
1309 begin
1310 case Index of
1311 0 : Result := SIBSQLEditor;
1312 1: Result := SInterbaseExpressVersion ;
1313 end;
1314 end;
1315
1316 function TIBSQLEditor.GetVerbCount: Integer;
1317 begin
1318 Result:= 2
1319 end;
1320
1321 { TIBSQLSQLPropertyEditor }
1322
1323 procedure TIBSQLSQLPropertyEditor.Edit;
1324 var
1325 IBSQL: TIBSQL;
1326 begin
1327 IBSQL := GetComponent(0) as TIBSQL;
1328 if IBSQLEditor.EditSQL(IBSQL) then Modified;
1329 end;
1330
1331 initialization
1332 {$I IBDBReg.lrs}
1333 end.