ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 13
Committed: Thu Nov 22 22:53:40 2012 UTC (11 years, 11 months ago) by tony
Content type: text/x-pascal
File size: 27021 byte(s)
Log Message:
Committing updates for Release R1-0-3

File Contents

# User Rev Content
1 tony 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 tony 7 { 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 }
31 tony 1 {************************************************************************}
32    
33     unit IBDBReg;
34    
35 tony 5 {$MODE Delphi}
36    
37 tony 1 (*
38     * Compiler defines
39     *)
40     {$A+} (* Aligned records: On *)
41     {$B-} (* Short circuit boolean expressions: Off *)
42     {$G+} (* Imported data: On *)
43     {$H+} (* Huge Strings: On *)
44     {$J-} (* Modification of Typed Constants: Off *)
45     {$M+} (* Generate run-time type information: On *)
46     {$O+} (* Optimization: On *)
47     {$Q-} (* Overflow checks: Off *)
48     {$R-} (* Range checks: Off *)
49     {$T+} (* Typed address: On *)
50     {$U+} (* Pentim-safe FDIVs: On *)
51     {$W-} (* Always generate stack frames: Off *)
52     {$X+} (* Extended syntax: On *)
53     {$Z1} (* Minimum Enumeration Size: 1 Byte *)
54    
55     interface
56    
57 tony 5 uses {Windows,} SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
58 tony 7 DB, IBTable, IBDatabase, IBEventsEditor, LazarusPackageIntf,
59 tony 5 IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor;
60 tony 1
61     type
62    
63     { TIBFileNameProperty
64     Property editor the DataBase Name property. Brings up the Open dialog }
65    
66     TIBFileNameProperty = class(TStringProperty)
67     public
68     procedure Edit; override;
69     function GetAttributes: TPropertyAttributes; override;
70     end;
71    
72     { TIBNameProperty
73     }
74     TIBNameProperty = class(TStringProperty)
75     public
76     function GetAttributes: TPropertyAttributes; override;
77     end;
78    
79     { TIBStoredProcNameProperty
80     Editor for the TIBStoredProc.StoredProcName property. Displays a drop-down list of all
81     the StoredProcedures in the Database.}
82     TIBStoredProcNameProperty = class(TIBNameProperty)
83     public
84     procedure GetValues(Proc: TGetStrProc); override;
85     end;
86    
87     { TIBTableNameProperty
88     Editor for the TIBTable.TableName property. Displays a drop-down list of all
89     the Tables in the Database.}
90     TIBTableNameProperty = class(TIBNameProperty)
91     public
92     procedure GetValues(Proc: TGetStrProc); override;
93     end;
94    
95     TDBStringProperty = class(TStringProperty)
96     public
97     function GetAttributes: TPropertyAttributes; override;
98     procedure GetValueList(List: TStrings); virtual;
99     procedure GetValues(Proc: TGetStrProc); override;
100     end;
101    
102     TIBIndexFieldNamesProperty = class(TDBStringProperty)
103     public
104     procedure GetValueList(List: TStrings); override;
105     end;
106    
107     TIBIndexNameProperty = class(TDBStringProperty)
108     public
109     procedure GetValueList(List: TStrings); override;
110     end;
111    
112     { TIBDatabaseEditor }
113    
114     TIBDatabaseEditor = class(TComponentEditor)
115     procedure ExecuteVerb(Index: Integer); override;
116     function GetVerb(Index: Integer): string; override;
117     function GetVerbCount: Integer; override;
118     end;
119    
120     { TIBTransactionEditor }
121    
122     TIBTransactionEditor = class(TComponentEditor)
123     public
124     procedure ExecuteVerb(Index: Integer); override;
125     function GetVerb(Index: Integer): string; override;
126     function GetVerbCount: Integer; override;
127     end;
128    
129     { TIBQueryEditor }
130    
131 tony 7 TIBQueryEditor = class(TFieldsComponentEditor)
132 tony 1 public
133     procedure ExecuteVerb(Index: Integer); override;
134     function GetVerb(Index: Integer): string; override;
135     function GetVerbCount: Integer; override;
136     end;
137    
138     { TIBStoredProcEditor }
139    
140 tony 7 TIBStoredProcEditor = class(TFieldsComponentEditor)
141 tony 1 public
142     procedure ExecuteVerb(Index: Integer); override;
143     function GetVerb(Index: Integer): string; override;
144     function GetVerbCount: Integer; override;
145     end;
146    
147     { TIBDataSetEditor }
148    
149 tony 7 TIBDataSetEditor = class(TFieldsComponentEditor)
150 tony 1 public
151     procedure ExecuteVerb(Index: Integer); override;
152     function GetVerb(Index: Integer): string; override;
153     function GetVerbCount: Integer; override;
154     end;
155    
156     { TIBUpdateSQLEditor }
157    
158     TIBUpdateSQLEditor = class(TComponentEditor)
159     public
160     procedure ExecuteVerb(Index: Integer); override;
161     function GetVerb(Index: Integer): string; override;
162     function GetVerbCount: Integer; override;
163     end;
164    
165 tony 7 { TIBSQLEditor }
166    
167     TIBSQLEditor = class(TComponentEditor)
168     public
169     procedure ExecuteVerb(Index: Integer); override;
170     function GetVerb(Index: Integer): string; override;
171     function GetVerbCount: Integer; override;
172     end;
173    
174     { TIBServiceEditor}
175    
176     TIBServiceEditor = class(TComponentEditor)
177     public
178     procedure ExecuteVerb(Index: Integer); override;
179     function GetVerb(Index: Integer): string; override;
180     function GetVerbCount: Integer; override;
181     end;
182    
183 tony 5 TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
184 tony 1 public
185     procedure Edit; override;
186     end;
187 tony 5 (*
188 tony 1 TIBTableFieldLinkProperty = class(TFieldLinkProperty)
189     private
190     FTable: TIBTable;
191     protected
192     function GetIndexFieldNames: string; override;
193     function GetMasterFields: string; override;
194     procedure SetIndexFieldNames(const Value: string); override;
195     procedure SetMasterFields(const Value: string); override;
196     public
197     procedure Edit; override;
198     end;
199 tony 5 *)
200 tony 1 { TSQLPropertyEditor }
201    
202 tony 5 TSQLPropertyEditor = class(TStringsPropertyEditor)
203 tony 1 public
204     function GetAttributes: TPropertyAttributes; override;
205     end;
206    
207     { TIBQuerySQLProperty }
208    
209     TIBQuerySQLProperty = class(TSQLPropertyEditor)
210     public
211     procedure Edit; override;
212     end;
213    
214 tony 7 {TIBSQLSQLPropertyEditor }
215    
216     TIBSQLSQLPropertyEditor = class(TSQLPropertyEditor)
217     public
218     procedure Edit; override;
219     end;
220    
221 tony 1 { TIBDatasetSQLProperty }
222    
223     TIBDatasetSQLProperty = class(TSQLPropertyEditor)
224     public
225     procedure Edit; override;
226     end;
227    
228     { TIBSQLProperty }
229    
230     TIBSQLProperty = class(TSQLPropertyEditor)
231     public
232     procedure Edit; override;
233     end;
234    
235 tony 5 { TUpdateSQLPropertyEditor }
236    
237     TUpdateSQLPropertyEditor = class(TSQLPropertyEditor)
238     protected
239     FIBUpdateSQL: TIBUpdateSQL;
240     FDatabase: TIBDatabase;
241     function GetObjects: boolean;
242     end;
243    
244     { TIBUpdateSQLProperty }
245    
246     TIBUpdateSQLProperty = class(TSQLPropertyEditor)
247 tony 1 public
248     procedure Edit; override;
249     end;
250    
251 tony 5 { TIBRefreshSQLProperty }
252 tony 1
253 tony 5 TIBRefreshSQLProperty = class(TSQLPropertyEditor)
254 tony 1 public
255 tony 5 procedure Edit; override;
256 tony 1 end;
257    
258 tony 5 { TIBInsertSQLProperty }
259 tony 1
260 tony 5 TIBInsertSQLProperty = class(TSQLPropertyEditor)
261 tony 1 public
262 tony 5 procedure Edit; override;
263 tony 1 end;
264    
265 tony 5 { TIBDeleteSQLProperty }
266 tony 1
267 tony 5 TIBDeleteSQLProperty = class(TSQLPropertyEditor)
268 tony 1 public
269 tony 5 procedure Edit; override;
270 tony 1 end;
271    
272 tony 5 { TIBUpdateSQLUpdateProperty }
273 tony 1
274 tony 5 TIBUpdateSQLUpdateProperty = class(TUpdateSQLPropertyEditor)
275 tony 1 public
276 tony 5 procedure Edit; override;
277 tony 1 end;
278    
279 tony 5 { TIBUpdateSQLRefreshSQLProperty }
280 tony 1
281 tony 5 TIBUpdateSQLRefreshSQLProperty = class(TUpdateSQLPropertyEditor)
282 tony 1 public
283 tony 5 procedure Edit; override;
284 tony 1 end;
285    
286 tony 5 { TIBUpdateSQLInsertSQLProperty }
287 tony 1
288 tony 5 TIBUpdateSQLInsertSQLProperty = class(TUpdateSQLPropertyEditor)
289 tony 1 public
290 tony 5 procedure Edit; override;
291 tony 1 end;
292    
293 tony 5 { TIBUpdateSQLDeleteProperty }
294 tony 1
295 tony 5 TIBUpdateSQLDeleteProperty = class(TUpdateSQLPropertyEditor)
296 tony 1 public
297 tony 5 function GetAttributes: TPropertyAttributes; override;
298     procedure Edit; override;
299 tony 1 end;
300    
301 tony 5 { TIBEventListProperty }
302 tony 1
303 tony 5 TIBEventListProperty = class(TClassProperty)
304 tony 1 public
305 tony 5 function GetAttributes: TPropertyAttributes; override;
306     procedure Edit; override;
307 tony 1 end;
308    
309 tony 5 {TIBGeneratorProperty}
310 tony 1
311 tony 5 TIBGeneratorProperty = class(TPersistentPropertyEditor)
312 tony 1 public
313 tony 5 function GetAttributes: TPropertyAttributes; override;
314     procedure Edit; override;
315 tony 1 end;
316    
317     procedure Register;
318    
319     implementation
320    
321 tony 5 uses IB, IBQuery, IBStoredProc, IBCustomDataSet,
322 tony 7 IBIntf, IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents,
323     IBServices, IBDatabaseEdit, IBTransactionEdit,
324 tony 5 IBBatchMove, DBLoginDlg, IBExtract,LResources, IBSelectSQLEditor,
325     IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
326 tony 7 IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
327 tony 13 IBSQLEditor, ibserviceeditor, LCLVersion;
328 tony 1
329 tony 7
330    
331 tony 1 procedure Register;
332     begin
333 tony 7 if not TryIBLoad then Exit;
334    
335     RegisterNoIcon([TIBStringField, TIBBCDField]);
336 tony 13 {$if lcl_fullversion < 01010000}
337     {see http://bugs.freepascal.org/view.php?id=19035 }
338 tony 7 RegisterNoIcon([TIntegerField]);
339 tony 13 {$endif}
340 tony 7 RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
341     TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBEvents,
342     TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
343     TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract]);
344     if IBServiceAPIPresent then
345 tony 1 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
346     TIBRestoreService, TIBValidationService, TIBStatisticalService,
347 tony 5 TIBLogService, TIBSecurityService, TIBServerProperties]);
348 tony 1 RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
349     RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
350     RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
351     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
352     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
353     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
354 tony 5 // RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
355 tony 1 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
356     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
357 tony 5 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
358     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'InsertSQL', TIBInsertSQLProperty); {do not localize}
359     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'RefreshSQL', TIBRefreshSQLProperty); {do not localize}
360     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'DeleteSQL', TIBDeleteSQLProperty); {do not localize}
361 tony 7 RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
362 tony 5 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'RefreshSQL', TIBUpdateSQLRefreshSQLProperty); {do not localize}
363     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
364     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
365     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
366 tony 1 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
367 tony 7 RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
368     RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
369 tony 1
370     RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
371     RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
372     RegisterComponentEditor(TIBUpdateSQL, TIBUpdateSQLEditor);
373     RegisterComponentEditor(TIBDataSet, TIBDataSetEditor);
374     RegisterComponentEditor(TIBQuery, TIBQueryEditor);
375     RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
376 tony 7 RegisterComponentEditor(TIBSQL, TIBSQLEditor);
377     RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
378 tony 1 end;
379    
380 tony 7 { TIBServiceEditor }
381    
382     procedure TIBServiceEditor.ExecuteVerb(Index: Integer);
383     begin
384     if Index < inherited GetVerbCount then
385     inherited ExecuteVerb(Index) else
386     begin
387     Dec(Index, inherited GetVerbCount);
388     case Index of
389     0 : if ibserviceeditor.EditIBService(TIBCustomService(Component)) then Designer.Modified;
390     end;
391     end;
392     end;
393    
394     function TIBServiceEditor.GetVerb(Index: Integer): string;
395     begin
396     if Index < inherited GetVerbCount then
397     Result := inherited GetVerb(Index) else
398     begin
399     Dec(Index, inherited GetVerbCount);
400     case Index of
401     0: Result := SIBServiceEditor;
402     1 : Result := SInterbaseExpressVersion;
403     end;
404     end;
405     end;
406    
407     function TIBServiceEditor.GetVerbCount: Integer;
408     begin
409     Result := inherited GetVerbCount + 2;
410     end;
411    
412 tony 1 { TIBFileNameProperty }
413     procedure TIBFileNameProperty.Edit;
414     begin
415     with TOpenDialog.Create(Application) do
416     try
417     InitialDir := ExtractFilePath(GetStrValue);
418 tony 7 Filter := SDatabaseFilter; {do not localize}
419 tony 1 if Execute then
420     SetStrValue(FileName);
421     finally
422     Free
423     end;
424     end;
425    
426     function TIBFileNameProperty.GetAttributes: TPropertyAttributes;
427     begin
428     Result := [paDialog];
429     end;
430    
431     { TIBNameProperty }
432    
433     function TIBNameProperty.GetAttributes: TPropertyAttributes;
434     begin
435     Result := [paValueList, paSortList];
436     end;
437    
438     { TIBStoredProcNameProperty }
439    
440     procedure TIBStoredProcNameProperty.GetValues(Proc: TGetStrProc);
441     var
442     StoredProc : TIBStoredProc;
443     i : integer;
444     begin
445     StoredProc := GetComponent(0) as TIBStoredProc;
446 tony 7 if StoredProc.Database = nil then
447     Exit;
448    
449 tony 1 with StoredProc do
450 tony 7 try
451 tony 1 for I := 0 to StoredProcedureNames.Count - 1 do
452     Proc (StoredProcedureNames[i]);
453 tony 7 except on E: Exception do
454     MessageDlg(E.Message,mtError,[mbOK],0)
455     end;
456 tony 1 end;
457    
458     { TIBTableNameProperty }
459    
460     procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc);
461     var
462     TableName : TIBTable;
463     i : integer;
464     begin
465     TableName := GetComponent(0) as TIBTable;
466     with TableName do
467     for I := 0 to TableNames.Count - 1 do
468     Proc (TableNames[i]);
469     end;
470    
471     { TDBStringProperty }
472    
473     function TDBStringProperty.GetAttributes: TPropertyAttributes;
474     begin
475     Result := [paValueList, paSortList, paMultiSelect];
476     end;
477    
478     procedure TDBStringProperty.GetValueList(List: TStrings);
479     begin
480     end;
481    
482     procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
483     var
484     I: Integer;
485     Values: TStringList;
486     begin
487     Values := TStringList.Create;
488     try
489     GetValueList(Values);
490     for I := 0 to Values.Count - 1 do Proc(Values[I]);
491     finally
492     Values.Free;
493     end;
494     end;
495    
496     { Utility Functions }
497    
498     function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent;
499     var
500     PropInfo: PPropInfo;
501     begin
502     Result := nil;
503     PropInfo := TypInfo.GetPropInfo(Instance.ClassInfo, PropName);
504     if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) then
505     Result := TObject(GetOrdProp(Instance, PropInfo)) as TPersistent;
506     end;
507    
508     function GetIndexDefs(Component: TPersistent): TIndexDefs;
509     var
510     DataSet: TDataSet;
511     begin
512     DataSet := Component as TDataSet;
513     Result := GetPropertyValue(DataSet, 'IndexDefs') as TIndexDefs; {do not localize}
514     if Assigned(Result) then
515     begin
516     Result.Updated := False;
517     Result.Update;
518     end;
519     end;
520    
521     { TIBIndexFieldNamesProperty }
522    
523     procedure TIBIndexFieldNamesProperty.GetValueList(List: TStrings);
524     var
525     I: Integer;
526     IndexDefs: TIndexDefs;
527     begin
528     IndexDefs := GetIndexDefs(GetComponent(0));
529     for I := 0 to IndexDefs.Count - 1 do
530     with IndexDefs[I] do
531     if (Options * [ixExpression, ixDescending] = []) and (Fields <> '') then
532     List.Add(Fields);
533     end;
534    
535    
536     { TIBIndexNameProperty }
537    
538     procedure TIBIndexNameProperty.GetValueList(List: TStrings);
539     begin
540     GetIndexDefs(GetComponent(0)).GetItemNames(List);
541     end;
542    
543     { TSQLPropertyEditor }
544    
545     function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
546     begin
547 tony 5 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
548 tony 1 end;
549    
550     { TIBQuerySQLProperty }
551    
552     procedure TIBQuerySQLProperty.Edit;
553     var
554     Query: TIBQuery;
555     begin
556 tony 5 Query := GetComponent(0) as TIBQuery;
557 tony 7 if IBSelectSQLEditor.EditSQL(Query.Database,Query.SQL) then Modified;
558 tony 1 end;
559    
560     { TIBDatasetSQLProperty }
561    
562     procedure TIBDatasetSQLProperty.Edit;
563     var
564     IBDataset: TIBDataset;
565     begin
566 tony 5 IBDataset := GetComponent(0) as TIBDataset;
567 tony 7 if IBSelectSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.SelectSQL) then Modified;
568 tony 1 end;
569    
570     { TIBSQLProperty }
571    
572     procedure TIBSQLProperty.Edit;
573     var
574     IBSQL: TIBSQL;
575     begin
576 tony 5 IBSQL := GetComponent(0) as TIBSQL;
577 tony 7 if IBSelectSQLEditor.EditSQL(IBSQL.Database,IBSQL.SQL) then Modified;
578 tony 1 end;
579    
580     { TIBUpdateSQLEditor }
581    
582     procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
583     begin
584 tony 5 if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
585 tony 1 end;
586    
587     function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
588     begin
589     case Index of
590     0 : Result := SIBUpdateSQLEditor;
591 tony 5 1: Result := SInterbaseExpressVersion;
592 tony 1 end;
593     end;
594    
595     function TIBUpdateSQLEditor.GetVerbCount: Integer;
596     begin
597 tony 7 Result := 2;
598 tony 1 end;
599    
600     { TIBDataSetEditor }
601    
602     procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
603     var
604     IBDataset: TIBDataset;
605     begin
606 tony 7 if Index < inherited GetVerbCount then
607     inherited ExecuteVerb(Index) else
608     begin
609     Dec(Index, inherited GetVerbCount);
610 tony 1 case Index of
611     0:
612 tony 5 if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
613 tony 1 Designer.Modified;
614     1: (Component as TIBDataSet).ExecSQL;
615     end;
616 tony 7 end;
617 tony 1 end;
618    
619     function TIBDataSetEditor.GetVerb(Index: Integer): string;
620     begin
621     if Index < inherited GetVerbCount then
622     Result := inherited GetVerb(Index) else
623     begin
624     Dec(Index, inherited GetVerbCount);
625     case Index of
626     0: Result := SIBDataSetEditor;
627     1: Result := SExecute;
628 tony 5 2: Result := SInterbaseExpressVersion;
629 tony 1 end;
630     end;
631     end;
632    
633     function TIBDataSetEditor.GetVerbCount: Integer;
634     begin
635 tony 7 Result := inherited GetVerbCount + 3;
636 tony 1 end;
637    
638     { TIBEventListProperty }
639    
640     function TIBEventListProperty.GetAttributes: TPropertyAttributes;
641     begin
642 tony 5 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
643 tony 1 end;
644    
645     procedure TIBEventListProperty.Edit;
646     var
647     Events: TStrings;
648 tony 5 IBEvents: TIBEvents;
649 tony 1 begin
650 tony 5 IBEvents := GetComponent(0) as TIBEvents;
651 tony 1 Events := TStringList.Create;
652     try
653 tony 5 Events.Assign( IBEvents.Events);
654 tony 7 if EditAlerterEvents( Events) then
655     begin
656     IBEvents.Events.Assign(Events);
657     Modified
658     end;
659 tony 1 finally
660     Events.Free;
661     end;
662     end;
663    
664     { TIBDatabaseEditor }
665     procedure TIBDatabaseEditor.ExecuteVerb(Index: Integer);
666     begin
667     if Index < inherited GetVerbCount then
668     inherited ExecuteVerb(Index) else
669     begin
670     Dec(Index, inherited GetVerbCount);
671     case Index of
672     0 : if EditIBDatabase(TIBDatabase(Component)) then Designer.Modified;
673     end;
674     end;
675     end;
676    
677     function TIBDatabaseEditor.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 := SIBDatabaseEditor;
685     1 : Result := SInterbaseExpressVersion;
686     end;
687     end;
688     end;
689    
690     function TIBDatabaseEditor.GetVerbCount: Integer;
691     begin
692     Result := inherited GetVerbCount + 2;
693     end;
694    
695     { TIBTransactionEditor }
696    
697     procedure TIBTransactionEditor.ExecuteVerb(Index: Integer);
698     begin
699     case Index of
700     0: if EditIBTransaction(TIBTransaction(Component)) then Designer.Modified;
701     end;
702     end;
703    
704     function TIBTransactionEditor.GetVerb(Index: Integer): string;
705     begin
706     case Index of
707     0: Result := SIBTransactionEditor;
708     1: Result := SInterbaseExpressVersion;
709     end;
710     end;
711    
712     function TIBTransactionEditor.GetVerbCount: Integer;
713     begin
714     Result := 2;
715     end;
716    
717     { TIBQueryEditor }
718    
719     procedure TIBQueryEditor.ExecuteVerb(Index: Integer);
720     var
721     Query: TIBQuery;
722     begin
723 tony 7 if Index < inherited GetVerbCount then
724     inherited ExecuteVerb(Index) else
725     begin
726 tony 1 Query := Component as TIBQuery;
727     Dec(Index, inherited GetVerbCount);
728     case Index of
729     0: Query.ExecSQL;
730 tony 7 1: if ibselectsqleditor.EditSQL(Query.Database,Query.SQL) then Designer.Modified;
731 tony 1 end;
732 tony 7 end;
733 tony 1 end;
734    
735     function TIBQueryEditor.GetVerb(Index: Integer): string;
736     begin
737     if Index < inherited GetVerbCount then
738     Result := inherited GetVerb(Index) else
739     begin
740     Dec(Index, inherited GetVerbCount);
741     case Index of
742     0: Result := SExecute;
743     1: Result := SEditSQL;
744     2: Result := SInterbaseExpressVersion;
745     end;
746     end;
747     end;
748    
749     function TIBQueryEditor.GetVerbCount: Integer;
750     begin
751 tony 7 Result := inherited GetVerbCount + 3;
752 tony 1 end;
753    
754     { TIBStoredProcEditor }
755    
756     procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
757     begin
758 tony 7 if Index < inherited GetVerbCount then
759     inherited ExecuteVerb(Index) else
760     begin
761     Dec(Index, inherited GetVerbCount);
762 tony 1 if Index = 0 then (Component as TIBStoredProc).ExecProc;
763 tony 7 end;
764 tony 1 end;
765    
766     function TIBStoredProcEditor.GetVerb(Index: Integer): string;
767     begin
768 tony 7 if Index < inherited GetVerbCount then
769     Result := inherited GetVerb(Index) else
770     begin
771     Dec(Index, inherited GetVerbCount);
772 tony 1 case Index of
773     0: Result := SExecute;
774     1: Result := SInterbaseExpressVersion;
775     end;
776 tony 7 end;
777 tony 1 end;
778    
779     function TIBStoredProcEditor.GetVerbCount: Integer;
780     begin
781     Result := inherited GetVerbCount + 2;
782     end;
783    
784     { TIBStoredProcParamsProperty }
785    
786     procedure TIBStoredProcParamsProperty.Edit;
787     var
788     StoredProc: TIBStoredProc;
789     Params: TParams;
790     begin
791     StoredProc := (GetComponent(0) as TIBStoredProc);
792     Params := TParams.Create(nil);
793     try
794     StoredProc.CopyParams(Params);
795     finally
796     Params.Free;
797     end;
798     inherited Edit;
799     end;
800 tony 5 (*
801 tony 1 { TIBTableFieldLinkProperty }
802    
803     procedure TIBTableFieldLinkProperty.Edit;
804     begin
805     FTable := DataSet as TIBTable;
806     inherited Edit;
807     end;
808    
809     function TIBTableFieldLinkProperty.GetIndexFieldNames: string;
810     begin
811     Result := FTable.IndexFieldNames;
812     end;
813    
814     function TIBTableFieldLinkProperty.GetMasterFields: string;
815     begin
816     Result := FTable.MasterFields;
817     end;
818    
819     procedure TIBTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
820     begin
821     FTable.IndexFieldNames := Value;
822     end;
823    
824     procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string);
825     begin
826     FTable.MasterFields := Value;
827 tony 5 end;*)
828 tony 1
829 tony 5 { TIBUpdateSQLProperty }
830 tony 1
831 tony 5 procedure TIBUpdateSQLProperty.Edit;
832     var
833     IBDataset: TIBDataset;
834 tony 1 begin
835 tony 5 IBDataset := GetComponent(0) as TIBDataset;
836 tony 7 if IBModifySQLEditor.EditSQL(IBDataSet.Database,IBDataSet.ModifySQL) then Modified;
837 tony 1 end;
838    
839 tony 5 { TIBUpdateSQLUpdateProperty }
840 tony 1
841 tony 5 procedure TIBUpdateSQLUpdateProperty.Edit;
842 tony 1 begin
843 tony 7 GetObjects;
844     if IBModifySQLEditor.EditSQL(FDatabase,FIBUpdateSQL.ModifySQL) then Modified;
845 tony 1 end;
846    
847 tony 5 { TIBRefreshSQLProperty }
848 tony 1
849 tony 5 procedure TIBRefreshSQLProperty.Edit;
850     var
851     IBDataset: TIBDataset;
852 tony 7 aDatabase: TIBDatabase;
853 tony 1 begin
854 tony 5 IBDataset := GetComponent(0) as TIBDataset;
855 tony 7 if IBRefreshSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.RefreshSQL) then Modified;
856 tony 1 end;
857    
858 tony 5 { TIBUpdateSQLRefreshSQLProperty }
859 tony 1
860 tony 5 procedure TIBUpdateSQLRefreshSQLProperty.Edit;
861 tony 1 begin
862 tony 7 GetObjects;
863     if IBRefreshSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.RefreshSQL) then Modified;
864 tony 1 end;
865    
866 tony 5 { TIBDeleteSQLProperty }
867 tony 1
868 tony 5 procedure TIBDeleteSQLProperty.Edit;
869 tony 1 var
870 tony 5 IBDataset: TIBDataset;
871 tony 1 begin
872 tony 5 IBDataset := GetComponent(0) as TIBDataset;
873 tony 7 if IBDeleteSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.DeleteSQL) then Modified;
874 tony 1 end;
875    
876 tony 5 { TIBUpdateSQLDeleteProperty }
877 tony 1
878 tony 5 function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
879 tony 1 begin
880 tony 5 Result:=inherited GetAttributes;
881 tony 1 end;
882    
883 tony 5 procedure TIBUpdateSQLDeleteProperty.Edit;
884 tony 1 begin
885 tony 7 GetObjects;
886     if IBDeleteSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.DeleteSQL) then Modified;
887 tony 1 end;
888    
889 tony 5 { TUpdateSQLPropertyEditor }
890 tony 1
891 tony 5 function TUpdateSQLPropertyEditor.GetObjects: boolean;
892 tony 1 begin
893 tony 5 Result := false;
894     FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
895     if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
896     Exit;
897 tony 7 FDatabase := nil;
898 tony 5 if FIBUpdateSQL.DataSet is TIBQuery then
899 tony 1 begin
900 tony 5 FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
901     Result := true
902 tony 1 end;
903     end;
904    
905 tony 5 { TIBInsertSQLProperty }
906 tony 1
907 tony 5 procedure TIBInsertSQLProperty.Edit;
908     var
909     IBDataset: TIBDataset;
910 tony 1 begin
911 tony 5 IBDataset := GetComponent(0) as TIBDataset;
912 tony 7 if IBInsertSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.InsertSQL) then Modified;
913 tony 1 end;
914    
915 tony 5 { TIBUpdateSQLInsertSQLProperty }
916 tony 1
917 tony 5 procedure TIBUpdateSQLInsertSQLProperty.Edit;
918 tony 1 begin
919 tony 7 GetObjects;
920     if IBInsertSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.InsertSQL) then Modified;
921 tony 1 end;
922    
923 tony 5 { TIBGeneratorProperty }
924 tony 1
925 tony 5 function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
926 tony 1 begin
927 tony 5 Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
928 tony 1 end;
929    
930 tony 5 procedure TIBGeneratorProperty.Edit;
931 tony 1 begin
932 tony 5 if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
933 tony 1 end;
934    
935 tony 7 { TIBSQLEditor }
936    
937     procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
938     begin
939     if IBSQLEditor.EditIBSQL(TIBSQL(Component)) then Modified;
940     end;
941    
942     function TIBSQLEditor.GetVerb(Index: Integer): string;
943     begin
944     case Index of
945     0 : Result := SIBSQLEditor;
946     1: Result := SInterbaseExpressVersion;
947     end;
948     end;
949    
950     function TIBSQLEditor.GetVerbCount: Integer;
951     begin
952     Result:= 2
953     end;
954    
955     { TIBSQLSQLPropertyEditor }
956    
957     procedure TIBSQLSQLPropertyEditor.Edit;
958     var
959     IBSQL: TIBSQL;
960     begin
961     IBSQL := GetComponent(0) as TIBSQL;
962     if IBSQLEditor.EditIBSQL(IBSQL) then Modified;
963     end;
964    
965 tony 5 initialization
966     {$I IBDBReg.lrs}
967 tony 1 end.