ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 5
Committed: Fri Feb 18 16:26:16 2011 UTC (13 years, 9 months ago) by tony
Content type: text/x-pascal
File size: 24515 byte(s)
Log Message:
Committing updates for Release pre-release

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