ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 263
Committed: Thu Dec 6 15:55:01 2018 UTC (5 years, 11 months ago) by tony
Content type: text/x-pascal
File size: 38806 byte(s)
Log Message:
Release 2.3.2 committed

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