ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 15
Committed: Thu Feb 28 16:56:14 2013 UTC (11 years, 9 months ago) by tony
Content type: text/x-pascal
File size: 27158 byte(s)
Log Message:
Committing updates for Release R1-0-4

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 15 if not TryIBLoad then
334     begin
335     MessageDlg('IBX is unable to locate the Firebird Library - have you remembered to install it?',mtError,[mbOK],0);
336     Exit;
337     end;
338 tony 7
339     RegisterNoIcon([TIBStringField, TIBBCDField]);
340 tony 13 {$if lcl_fullversion < 01010000}
341     {see http://bugs.freepascal.org/view.php?id=19035 }
342 tony 7 RegisterNoIcon([TIntegerField]);
343 tony 13 {$endif}
344 tony 7 RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
345     TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBEvents,
346     TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
347     TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract]);
348     if IBServiceAPIPresent then
349 tony 1 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
350     TIBRestoreService, TIBValidationService, TIBStatisticalService,
351 tony 5 TIBLogService, TIBSecurityService, TIBServerProperties]);
352 tony 1 RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
353     RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
354     RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
355     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
356     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
357     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
358 tony 5 // RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
359 tony 1 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
360     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
361 tony 5 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
362     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'InsertSQL', TIBInsertSQLProperty); {do not localize}
363     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'RefreshSQL', TIBRefreshSQLProperty); {do not localize}
364     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'DeleteSQL', TIBDeleteSQLProperty); {do not localize}
365 tony 7 RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
366 tony 5 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'RefreshSQL', TIBUpdateSQLRefreshSQLProperty); {do not localize}
367     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
368     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
369     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
370 tony 1 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
371 tony 7 RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
372     RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
373 tony 1
374     RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
375     RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
376     RegisterComponentEditor(TIBUpdateSQL, TIBUpdateSQLEditor);
377     RegisterComponentEditor(TIBDataSet, TIBDataSetEditor);
378     RegisterComponentEditor(TIBQuery, TIBQueryEditor);
379     RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
380 tony 7 RegisterComponentEditor(TIBSQL, TIBSQLEditor);
381     RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
382 tony 1 end;
383    
384 tony 7 { TIBServiceEditor }
385    
386     procedure TIBServiceEditor.ExecuteVerb(Index: Integer);
387     begin
388     if Index < inherited GetVerbCount then
389     inherited ExecuteVerb(Index) else
390     begin
391     Dec(Index, inherited GetVerbCount);
392     case Index of
393     0 : if ibserviceeditor.EditIBService(TIBCustomService(Component)) then Designer.Modified;
394     end;
395     end;
396     end;
397    
398     function TIBServiceEditor.GetVerb(Index: Integer): string;
399     begin
400     if Index < inherited GetVerbCount then
401     Result := inherited GetVerb(Index) else
402     begin
403     Dec(Index, inherited GetVerbCount);
404     case Index of
405     0: Result := SIBServiceEditor;
406     1 : Result := SInterbaseExpressVersion;
407     end;
408     end;
409     end;
410    
411     function TIBServiceEditor.GetVerbCount: Integer;
412     begin
413     Result := inherited GetVerbCount + 2;
414     end;
415    
416 tony 1 { TIBFileNameProperty }
417     procedure TIBFileNameProperty.Edit;
418     begin
419     with TOpenDialog.Create(Application) do
420     try
421     InitialDir := ExtractFilePath(GetStrValue);
422 tony 7 Filter := SDatabaseFilter; {do not localize}
423 tony 1 if Execute then
424     SetStrValue(FileName);
425     finally
426     Free
427     end;
428     end;
429    
430     function TIBFileNameProperty.GetAttributes: TPropertyAttributes;
431     begin
432     Result := [paDialog];
433     end;
434    
435     { TIBNameProperty }
436    
437     function TIBNameProperty.GetAttributes: TPropertyAttributes;
438     begin
439     Result := [paValueList, paSortList];
440     end;
441    
442     { TIBStoredProcNameProperty }
443    
444     procedure TIBStoredProcNameProperty.GetValues(Proc: TGetStrProc);
445     var
446     StoredProc : TIBStoredProc;
447     i : integer;
448     begin
449     StoredProc := GetComponent(0) as TIBStoredProc;
450 tony 7 if StoredProc.Database = nil then
451     Exit;
452    
453 tony 1 with StoredProc do
454 tony 7 try
455 tony 1 for I := 0 to StoredProcedureNames.Count - 1 do
456     Proc (StoredProcedureNames[i]);
457 tony 7 except on E: Exception do
458     MessageDlg(E.Message,mtError,[mbOK],0)
459     end;
460 tony 1 end;
461    
462     { TIBTableNameProperty }
463    
464     procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc);
465     var
466     TableName : TIBTable;
467     i : integer;
468     begin
469     TableName := GetComponent(0) as TIBTable;
470     with TableName do
471     for I := 0 to TableNames.Count - 1 do
472     Proc (TableNames[i]);
473     end;
474    
475     { TDBStringProperty }
476    
477     function TDBStringProperty.GetAttributes: TPropertyAttributes;
478     begin
479     Result := [paValueList, paSortList, paMultiSelect];
480     end;
481    
482     procedure TDBStringProperty.GetValueList(List: TStrings);
483     begin
484     end;
485    
486     procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
487     var
488     I: Integer;
489     Values: TStringList;
490     begin
491     Values := TStringList.Create;
492     try
493     GetValueList(Values);
494     for I := 0 to Values.Count - 1 do Proc(Values[I]);
495     finally
496     Values.Free;
497     end;
498     end;
499    
500     { Utility Functions }
501    
502     function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent;
503     var
504     PropInfo: PPropInfo;
505     begin
506     Result := nil;
507     PropInfo := TypInfo.GetPropInfo(Instance.ClassInfo, PropName);
508     if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) then
509     Result := TObject(GetOrdProp(Instance, PropInfo)) as TPersistent;
510     end;
511    
512     function GetIndexDefs(Component: TPersistent): TIndexDefs;
513     var
514     DataSet: TDataSet;
515     begin
516     DataSet := Component as TDataSet;
517     Result := GetPropertyValue(DataSet, 'IndexDefs') as TIndexDefs; {do not localize}
518     if Assigned(Result) then
519     begin
520     Result.Updated := False;
521     Result.Update;
522     end;
523     end;
524    
525     { TIBIndexFieldNamesProperty }
526    
527     procedure TIBIndexFieldNamesProperty.GetValueList(List: TStrings);
528     var
529     I: Integer;
530     IndexDefs: TIndexDefs;
531     begin
532     IndexDefs := GetIndexDefs(GetComponent(0));
533     for I := 0 to IndexDefs.Count - 1 do
534     with IndexDefs[I] do
535     if (Options * [ixExpression, ixDescending] = []) and (Fields <> '') then
536     List.Add(Fields);
537     end;
538    
539    
540     { TIBIndexNameProperty }
541    
542     procedure TIBIndexNameProperty.GetValueList(List: TStrings);
543     begin
544     GetIndexDefs(GetComponent(0)).GetItemNames(List);
545     end;
546    
547     { TSQLPropertyEditor }
548    
549     function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
550     begin
551 tony 5 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
552 tony 1 end;
553    
554     { TIBQuerySQLProperty }
555    
556     procedure TIBQuerySQLProperty.Edit;
557     var
558     Query: TIBQuery;
559     begin
560 tony 5 Query := GetComponent(0) as TIBQuery;
561 tony 7 if IBSelectSQLEditor.EditSQL(Query.Database,Query.SQL) then Modified;
562 tony 1 end;
563    
564     { TIBDatasetSQLProperty }
565    
566     procedure TIBDatasetSQLProperty.Edit;
567     var
568     IBDataset: TIBDataset;
569     begin
570 tony 5 IBDataset := GetComponent(0) as TIBDataset;
571 tony 7 if IBSelectSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.SelectSQL) then Modified;
572 tony 1 end;
573    
574     { TIBSQLProperty }
575    
576     procedure TIBSQLProperty.Edit;
577     var
578     IBSQL: TIBSQL;
579     begin
580 tony 5 IBSQL := GetComponent(0) as TIBSQL;
581 tony 7 if IBSelectSQLEditor.EditSQL(IBSQL.Database,IBSQL.SQL) then Modified;
582 tony 1 end;
583    
584     { TIBUpdateSQLEditor }
585    
586     procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
587     begin
588 tony 5 if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
589 tony 1 end;
590    
591     function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
592     begin
593     case Index of
594     0 : Result := SIBUpdateSQLEditor;
595 tony 5 1: Result := SInterbaseExpressVersion;
596 tony 1 end;
597     end;
598    
599     function TIBUpdateSQLEditor.GetVerbCount: Integer;
600     begin
601 tony 7 Result := 2;
602 tony 1 end;
603    
604     { TIBDataSetEditor }
605    
606     procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
607     var
608     IBDataset: TIBDataset;
609     begin
610 tony 7 if Index < inherited GetVerbCount then
611     inherited ExecuteVerb(Index) else
612     begin
613     Dec(Index, inherited GetVerbCount);
614 tony 1 case Index of
615     0:
616 tony 5 if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
617 tony 1 Designer.Modified;
618     1: (Component as TIBDataSet).ExecSQL;
619     end;
620 tony 7 end;
621 tony 1 end;
622    
623     function TIBDataSetEditor.GetVerb(Index: Integer): string;
624     begin
625     if Index < inherited GetVerbCount then
626     Result := inherited GetVerb(Index) else
627     begin
628     Dec(Index, inherited GetVerbCount);
629     case Index of
630     0: Result := SIBDataSetEditor;
631     1: Result := SExecute;
632 tony 5 2: Result := SInterbaseExpressVersion;
633 tony 1 end;
634     end;
635     end;
636    
637     function TIBDataSetEditor.GetVerbCount: Integer;
638     begin
639 tony 7 Result := inherited GetVerbCount + 3;
640 tony 1 end;
641    
642     { TIBEventListProperty }
643    
644     function TIBEventListProperty.GetAttributes: TPropertyAttributes;
645     begin
646 tony 5 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
647 tony 1 end;
648    
649     procedure TIBEventListProperty.Edit;
650     var
651     Events: TStrings;
652 tony 5 IBEvents: TIBEvents;
653 tony 1 begin
654 tony 5 IBEvents := GetComponent(0) as TIBEvents;
655 tony 1 Events := TStringList.Create;
656     try
657 tony 5 Events.Assign( IBEvents.Events);
658 tony 7 if EditAlerterEvents( Events) then
659     begin
660     IBEvents.Events.Assign(Events);
661     Modified
662     end;
663 tony 1 finally
664     Events.Free;
665     end;
666     end;
667    
668     { TIBDatabaseEditor }
669     procedure TIBDatabaseEditor.ExecuteVerb(Index: Integer);
670     begin
671     if Index < inherited GetVerbCount then
672     inherited ExecuteVerb(Index) else
673     begin
674     Dec(Index, inherited GetVerbCount);
675     case Index of
676     0 : if EditIBDatabase(TIBDatabase(Component)) then Designer.Modified;
677     end;
678     end;
679     end;
680    
681     function TIBDatabaseEditor.GetVerb(Index: Integer): string;
682     begin
683     if Index < inherited GetVerbCount then
684     Result := inherited GetVerb(Index) else
685     begin
686     Dec(Index, inherited GetVerbCount);
687     case Index of
688     0: Result := SIBDatabaseEditor;
689     1 : Result := SInterbaseExpressVersion;
690     end;
691     end;
692     end;
693    
694     function TIBDatabaseEditor.GetVerbCount: Integer;
695     begin
696     Result := inherited GetVerbCount + 2;
697     end;
698    
699     { TIBTransactionEditor }
700    
701     procedure TIBTransactionEditor.ExecuteVerb(Index: Integer);
702     begin
703     case Index of
704     0: if EditIBTransaction(TIBTransaction(Component)) then Designer.Modified;
705     end;
706     end;
707    
708     function TIBTransactionEditor.GetVerb(Index: Integer): string;
709     begin
710     case Index of
711     0: Result := SIBTransactionEditor;
712     1: Result := SInterbaseExpressVersion;
713     end;
714     end;
715    
716     function TIBTransactionEditor.GetVerbCount: Integer;
717     begin
718     Result := 2;
719     end;
720    
721     { TIBQueryEditor }
722    
723     procedure TIBQueryEditor.ExecuteVerb(Index: Integer);
724     var
725     Query: TIBQuery;
726     begin
727 tony 7 if Index < inherited GetVerbCount then
728     inherited ExecuteVerb(Index) else
729     begin
730 tony 1 Query := Component as TIBQuery;
731     Dec(Index, inherited GetVerbCount);
732     case Index of
733     0: Query.ExecSQL;
734 tony 7 1: if ibselectsqleditor.EditSQL(Query.Database,Query.SQL) then Designer.Modified;
735 tony 1 end;
736 tony 7 end;
737 tony 1 end;
738    
739     function TIBQueryEditor.GetVerb(Index: Integer): string;
740     begin
741     if Index < inherited GetVerbCount then
742     Result := inherited GetVerb(Index) else
743     begin
744     Dec(Index, inherited GetVerbCount);
745     case Index of
746     0: Result := SExecute;
747     1: Result := SEditSQL;
748     2: Result := SInterbaseExpressVersion;
749     end;
750     end;
751     end;
752    
753     function TIBQueryEditor.GetVerbCount: Integer;
754     begin
755 tony 7 Result := inherited GetVerbCount + 3;
756 tony 1 end;
757    
758     { TIBStoredProcEditor }
759    
760     procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
761     begin
762 tony 7 if Index < inherited GetVerbCount then
763     inherited ExecuteVerb(Index) else
764     begin
765     Dec(Index, inherited GetVerbCount);
766 tony 1 if Index = 0 then (Component as TIBStoredProc).ExecProc;
767 tony 7 end;
768 tony 1 end;
769    
770     function TIBStoredProcEditor.GetVerb(Index: Integer): string;
771     begin
772 tony 7 if Index < inherited GetVerbCount then
773     Result := inherited GetVerb(Index) else
774     begin
775     Dec(Index, inherited GetVerbCount);
776 tony 1 case Index of
777     0: Result := SExecute;
778     1: Result := SInterbaseExpressVersion;
779     end;
780 tony 7 end;
781 tony 1 end;
782    
783     function TIBStoredProcEditor.GetVerbCount: Integer;
784     begin
785     Result := inherited GetVerbCount + 2;
786     end;
787    
788     { TIBStoredProcParamsProperty }
789    
790     procedure TIBStoredProcParamsProperty.Edit;
791     var
792     StoredProc: TIBStoredProc;
793     Params: TParams;
794     begin
795     StoredProc := (GetComponent(0) as TIBStoredProc);
796     Params := TParams.Create(nil);
797     try
798     StoredProc.CopyParams(Params);
799     finally
800     Params.Free;
801     end;
802     inherited Edit;
803     end;
804 tony 5 (*
805 tony 1 { TIBTableFieldLinkProperty }
806    
807     procedure TIBTableFieldLinkProperty.Edit;
808     begin
809     FTable := DataSet as TIBTable;
810     inherited Edit;
811     end;
812    
813     function TIBTableFieldLinkProperty.GetIndexFieldNames: string;
814     begin
815     Result := FTable.IndexFieldNames;
816     end;
817    
818     function TIBTableFieldLinkProperty.GetMasterFields: string;
819     begin
820     Result := FTable.MasterFields;
821     end;
822    
823     procedure TIBTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
824     begin
825     FTable.IndexFieldNames := Value;
826     end;
827    
828     procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string);
829     begin
830     FTable.MasterFields := Value;
831 tony 5 end;*)
832 tony 1
833 tony 5 { TIBUpdateSQLProperty }
834 tony 1
835 tony 5 procedure TIBUpdateSQLProperty.Edit;
836     var
837     IBDataset: TIBDataset;
838 tony 1 begin
839 tony 5 IBDataset := GetComponent(0) as TIBDataset;
840 tony 7 if IBModifySQLEditor.EditSQL(IBDataSet.Database,IBDataSet.ModifySQL) then Modified;
841 tony 1 end;
842    
843 tony 5 { TIBUpdateSQLUpdateProperty }
844 tony 1
845 tony 5 procedure TIBUpdateSQLUpdateProperty.Edit;
846 tony 1 begin
847 tony 7 GetObjects;
848     if IBModifySQLEditor.EditSQL(FDatabase,FIBUpdateSQL.ModifySQL) then Modified;
849 tony 1 end;
850    
851 tony 5 { TIBRefreshSQLProperty }
852 tony 1
853 tony 5 procedure TIBRefreshSQLProperty.Edit;
854     var
855     IBDataset: TIBDataset;
856 tony 7 aDatabase: TIBDatabase;
857 tony 1 begin
858 tony 5 IBDataset := GetComponent(0) as TIBDataset;
859 tony 7 if IBRefreshSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.RefreshSQL) then Modified;
860 tony 1 end;
861    
862 tony 5 { TIBUpdateSQLRefreshSQLProperty }
863 tony 1
864 tony 5 procedure TIBUpdateSQLRefreshSQLProperty.Edit;
865 tony 1 begin
866 tony 7 GetObjects;
867     if IBRefreshSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.RefreshSQL) then Modified;
868 tony 1 end;
869    
870 tony 5 { TIBDeleteSQLProperty }
871 tony 1
872 tony 5 procedure TIBDeleteSQLProperty.Edit;
873 tony 1 var
874 tony 5 IBDataset: TIBDataset;
875 tony 1 begin
876 tony 5 IBDataset := GetComponent(0) as TIBDataset;
877 tony 7 if IBDeleteSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.DeleteSQL) then Modified;
878 tony 1 end;
879    
880 tony 5 { TIBUpdateSQLDeleteProperty }
881 tony 1
882 tony 5 function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
883 tony 1 begin
884 tony 5 Result:=inherited GetAttributes;
885 tony 1 end;
886    
887 tony 5 procedure TIBUpdateSQLDeleteProperty.Edit;
888 tony 1 begin
889 tony 7 GetObjects;
890     if IBDeleteSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.DeleteSQL) then Modified;
891 tony 1 end;
892    
893 tony 5 { TUpdateSQLPropertyEditor }
894 tony 1
895 tony 5 function TUpdateSQLPropertyEditor.GetObjects: boolean;
896 tony 1 begin
897 tony 5 Result := false;
898     FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
899     if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
900     Exit;
901 tony 7 FDatabase := nil;
902 tony 5 if FIBUpdateSQL.DataSet is TIBQuery then
903 tony 1 begin
904 tony 5 FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
905     Result := true
906 tony 1 end;
907     end;
908    
909 tony 5 { TIBInsertSQLProperty }
910 tony 1
911 tony 5 procedure TIBInsertSQLProperty.Edit;
912     var
913     IBDataset: TIBDataset;
914 tony 1 begin
915 tony 5 IBDataset := GetComponent(0) as TIBDataset;
916 tony 7 if IBInsertSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.InsertSQL) then Modified;
917 tony 1 end;
918    
919 tony 5 { TIBUpdateSQLInsertSQLProperty }
920 tony 1
921 tony 5 procedure TIBUpdateSQLInsertSQLProperty.Edit;
922 tony 1 begin
923 tony 7 GetObjects;
924     if IBInsertSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.InsertSQL) then Modified;
925 tony 1 end;
926    
927 tony 5 { TIBGeneratorProperty }
928 tony 1
929 tony 5 function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
930 tony 1 begin
931 tony 5 Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
932 tony 1 end;
933    
934 tony 5 procedure TIBGeneratorProperty.Edit;
935 tony 1 begin
936 tony 5 if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
937 tony 1 end;
938    
939 tony 7 { TIBSQLEditor }
940    
941     procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
942     begin
943     if IBSQLEditor.EditIBSQL(TIBSQL(Component)) then Modified;
944     end;
945    
946     function TIBSQLEditor.GetVerb(Index: Integer): string;
947     begin
948     case Index of
949     0 : Result := SIBSQLEditor;
950     1: Result := SInterbaseExpressVersion;
951     end;
952     end;
953    
954     function TIBSQLEditor.GetVerbCount: Integer;
955     begin
956     Result:= 2
957     end;
958    
959     { TIBSQLSQLPropertyEditor }
960    
961     procedure TIBSQLSQLPropertyEditor.Edit;
962     var
963     IBSQL: TIBSQL;
964     begin
965     IBSQL := GetComponent(0) as TIBSQL;
966     if IBSQLEditor.EditIBSQL(IBSQL) then Modified;
967     end;
968    
969 tony 5 initialization
970     {$I IBDBReg.lrs}
971 tony 1 end.