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, 9 months ago) by tony
Content type: text/x-pascal
File size: 38083 byte(s)
Log Message:
Fixes Merged

File Contents

# User Rev Content
1 tony 33 {************************************************************************}
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 tony 143 { Associates Ltd 2011 - 2018 }
31 tony 33 {************************************************************************}
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 tony 80 IBUpdateSQL, IBUpdate, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor,
58 tony 33 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 tony 107 { 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 tony 33 { 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 tony 45 { 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 tony 33 { 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 tony 209 { 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 tony 33 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 tony 126 { 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 tony 33 { 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 tony 45 { TIBFieldDefsProperty }
393 tony 33
394 tony 45 TIBFieldDefsProperty = class(TCollectionPropertyEditor)
395     public
396     procedure Edit; override;
397     end;
398 tony 33
399 tony 45 { TIBIndexDefsProperty }
400    
401     TIBIndexDefsProperty = class(TCollectionPropertyEditor)
402     public
403     procedure Edit; override;
404     end;
405    
406    
407 tony 33 procedure Register;
408    
409     implementation
410    
411 tony 45 uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
412     IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
413 tony 209 IBServices, IBXServices, IBDatabaseEdit, IBTransactionEdit,
414 tony 33 IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
415     IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
416     IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
417     IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
418 tony 45 IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
419 tony 209 IBArrayGrid, IBVersion, IBDataOutput, IBXServiceEditor;
420 tony 33
421 tony 45 const
422     IBPalette1 = 'Firebird'; {do not localize}
423 tony 209 IBPalette2 = 'Firebird Legacy Admin'; {do not localize}
424 tony 45 IBPalette3 = 'Firebird Data Controls'; {do not localize}
425 tony 209 IBPalette4 = 'Firebird Admin'; {do not localize}
426    
427 tony 45 resourcestring
428 tony 47 SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
429 tony 45 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 tony 33
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 tony 106 RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
448     TIBSmallintField, TIBIntegerField, TIBLargeIntField]);
449 tony 33 {$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 tony 80 TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBUpdate, TIBEvents,
455 tony 33 TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
456 tony 47 TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
457     TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
458 tony 45 if FirebirdAPI.HasServiceAPI then
459 tony 209 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 tony 33 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
467 tony 209 TIBRestoreService, TIBValidationService,
468     TIBOnlineValidationService, TIBStatisticalService,
469 tony 33 TIBLogService, TIBSecurityService, TIBServerProperties]);
470 tony 209 end;
471 tony 33
472 tony 209 RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
473 tony 33
474     RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
475     RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
476 tony 107 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
477 tony 33 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 tony 45 RegisterPropertyEditor(TypeInfo(TFieldDefs), TIBTable, 'FieldDefs', TIBFieldDefsProperty); {do not localize}
483     RegisterPropertyEditor(TypeInfo(TIndexDefs), TIBTable, 'IndexDefs', TIBIndexDefsProperty); {do not localize}
484 tony 33 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 tony 126 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
496 tony 33 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 tony 107 RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty); {do not localize}
500 tony 33
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 tony 45 RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
510 tony 209 RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
511 tony 33
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 tony 143 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
523     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
524 tony 33
525 tony 39 IBGUIInterface := TIBDSLCLInterface.Create;
526 tony 33 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 tony 209 { 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 tony 126 { 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 tony 107 { 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 tony 45 { 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 tony 33 { 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 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
957 tony 33 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 tony 45 1: Result := SInterbaseExpressVersion ;
971 tony 33 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 tony 45 2: Result := SInterbaseExpressVersion ;
1006 tony 33 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 tony 45 1 : Result := SInterbaseExpressVersion ;
1063 tony 33 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 tony 45 1: Result := SInterbaseExpressVersion ;
1086 tony 33 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 tony 45 2: Result := SInterbaseExpressVersion ;
1122 tony 33 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 tony 45 1: Result := SInterbaseExpressVersion ;
1152 tony 33 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 tony 80 if IBSQLEditor.EditSQL(TIBSQL(Component)) then Modified;
1306 tony 33 end;
1307    
1308     function TIBSQLEditor.GetVerb(Index: Integer): string;
1309     begin
1310     case Index of
1311     0 : Result := SIBSQLEditor;
1312 tony 45 1: Result := SInterbaseExpressVersion ;
1313 tony 33 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 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
1329 tony 33 end;
1330    
1331     initialization
1332     {$I IBDBReg.lrs}
1333     end.