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, 8 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

# Content
1 {************************************************************************}
2 { }
3 { Borland Delphi Visual Component Library }
4 { InterBase Express core components }
5 { }
6 { Copyright (c) 1998-2000 Inprise Corporation }
7 { }
8 { InterBase Express is based in part on the product }
9 { Free IB Components, written by Gregory H. Deatz for }
10 { Hoagland, Longo, Moran, Dunst & Doukas Company. }
11 { Free IB Components is used under license. }
12 { }
13 { The contents of this file are subject to the InterBase }
14 { Public License Version 1.0 (the "License"); you may not }
15 { use this file except in compliance with the License. You }
16 { may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17 { Software distributed under the License is distributed on }
18 { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
19 { express or implied. See the License for the specific language }
20 { governing rights and limitations under the License. }
21 { The Original Code was created by InterBase Software Corporation }
22 { and its successors. }
23 { Portions created by Inprise Corporation are Copyright (C) Inprise }
24 { Corporation. All Rights Reserved. }
25 { Contributor(s): Jeff Overcash }
26 { }
27 { IBX For Lazarus (Firebird Express) }
28 { Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
29 { Portions created by MWA Software are copyright McCallum Whyman }
30 { Associates Ltd 2011 }
31 {************************************************************************}
32
33 unit IBDBReg;
34
35 {$MODE Delphi}
36
37 (*
38 * Compiler defines
39 *)
40 {$A+} (* Aligned records: On *)
41 {$B-} (* Short circuit boolean expressions: Off *)
42 {$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 uses {Windows,} SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
58 DB, IBTable, IBDatabase, IBEventsEditor, LazarusPackageIntf,
59 IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor;
60
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 TIBQueryEditor = class(TFieldsComponentEditor)
132 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 TIBStoredProcEditor = class(TFieldsComponentEditor)
141 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 TIBDataSetEditor = class(TFieldsComponentEditor)
150 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 { 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 TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
184 public
185 procedure Edit; override;
186 end;
187 (*
188 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 *)
200 { TSQLPropertyEditor }
201
202 TSQLPropertyEditor = class(TStringsPropertyEditor)
203 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 {TIBSQLSQLPropertyEditor }
215
216 TIBSQLSQLPropertyEditor = class(TSQLPropertyEditor)
217 public
218 procedure Edit; override;
219 end;
220
221 { 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 { 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 public
248 procedure Edit; override;
249 end;
250
251 { TIBRefreshSQLProperty }
252
253 TIBRefreshSQLProperty = class(TSQLPropertyEditor)
254 public
255 procedure Edit; override;
256 end;
257
258 { TIBInsertSQLProperty }
259
260 TIBInsertSQLProperty = class(TSQLPropertyEditor)
261 public
262 procedure Edit; override;
263 end;
264
265 { TIBDeleteSQLProperty }
266
267 TIBDeleteSQLProperty = class(TSQLPropertyEditor)
268 public
269 procedure Edit; override;
270 end;
271
272 { TIBUpdateSQLUpdateProperty }
273
274 TIBUpdateSQLUpdateProperty = class(TUpdateSQLPropertyEditor)
275 public
276 procedure Edit; override;
277 end;
278
279 { TIBUpdateSQLRefreshSQLProperty }
280
281 TIBUpdateSQLRefreshSQLProperty = class(TUpdateSQLPropertyEditor)
282 public
283 procedure Edit; override;
284 end;
285
286 { TIBUpdateSQLInsertSQLProperty }
287
288 TIBUpdateSQLInsertSQLProperty = class(TUpdateSQLPropertyEditor)
289 public
290 procedure Edit; override;
291 end;
292
293 { TIBUpdateSQLDeleteProperty }
294
295 TIBUpdateSQLDeleteProperty = class(TUpdateSQLPropertyEditor)
296 public
297 function GetAttributes: TPropertyAttributes; override;
298 procedure Edit; override;
299 end;
300
301 { TIBEventListProperty }
302
303 TIBEventListProperty = class(TClassProperty)
304 public
305 function GetAttributes: TPropertyAttributes; override;
306 procedure Edit; override;
307 end;
308
309 {TIBGeneratorProperty}
310
311 TIBGeneratorProperty = class(TPersistentPropertyEditor)
312 public
313 function GetAttributes: TPropertyAttributes; override;
314 procedure Edit; override;
315 end;
316
317 procedure Register;
318
319 implementation
320
321 uses IB, IBQuery, IBStoredProc, IBCustomDataSet,
322 IBIntf, IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents,
323 IBServices, IBDatabaseEdit, IBTransactionEdit,
324 IBBatchMove, DBLoginDlg, IBExtract,LResources, IBSelectSQLEditor,
325 IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
326 IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
327 IBSQLEditor, ibserviceeditor, LCLVersion;
328
329
330
331 procedure Register;
332 begin
333 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
339 RegisterNoIcon([TIBStringField, TIBBCDField]);
340 {$if lcl_fullversion < 01010000}
341 {see http://bugs.freepascal.org/view.php?id=19035 }
342 RegisterNoIcon([TIntegerField]);
343 {$endif}
344 RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
345 TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBEvents,
346 TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
347 TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract]);
348 if IBServiceAPIPresent then
349 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
350 TIBRestoreService, TIBValidationService, TIBStatisticalService,
351 TIBLogService, TIBSecurityService, TIBServerProperties]);
352 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 // RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
359 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
360 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
361 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 RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
366 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 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
371 RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
372 RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
373
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 RegisterComponentEditor(TIBSQL, TIBSQLEditor);
381 RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
382 end;
383
384 { 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 { TIBFileNameProperty }
417 procedure TIBFileNameProperty.Edit;
418 begin
419 with TOpenDialog.Create(Application) do
420 try
421 InitialDir := ExtractFilePath(GetStrValue);
422 Filter := SDatabaseFilter; {do not localize}
423 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 if StoredProc.Database = nil then
451 Exit;
452
453 with StoredProc do
454 try
455 for I := 0 to StoredProcedureNames.Count - 1 do
456 Proc (StoredProcedureNames[i]);
457 except on E: Exception do
458 MessageDlg(E.Message,mtError,[mbOK],0)
459 end;
460 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 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
552 end;
553
554 { TIBQuerySQLProperty }
555
556 procedure TIBQuerySQLProperty.Edit;
557 var
558 Query: TIBQuery;
559 begin
560 Query := GetComponent(0) as TIBQuery;
561 if IBSelectSQLEditor.EditSQL(Query.Database,Query.SQL) then Modified;
562 end;
563
564 { TIBDatasetSQLProperty }
565
566 procedure TIBDatasetSQLProperty.Edit;
567 var
568 IBDataset: TIBDataset;
569 begin
570 IBDataset := GetComponent(0) as TIBDataset;
571 if IBSelectSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.SelectSQL) then Modified;
572 end;
573
574 { TIBSQLProperty }
575
576 procedure TIBSQLProperty.Edit;
577 var
578 IBSQL: TIBSQL;
579 begin
580 IBSQL := GetComponent(0) as TIBSQL;
581 if IBSelectSQLEditor.EditSQL(IBSQL.Database,IBSQL.SQL) then Modified;
582 end;
583
584 { TIBUpdateSQLEditor }
585
586 procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
587 begin
588 if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
589 end;
590
591 function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
592 begin
593 case Index of
594 0 : Result := SIBUpdateSQLEditor;
595 1: Result := SInterbaseExpressVersion;
596 end;
597 end;
598
599 function TIBUpdateSQLEditor.GetVerbCount: Integer;
600 begin
601 Result := 2;
602 end;
603
604 { TIBDataSetEditor }
605
606 procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
607 var
608 IBDataset: TIBDataset;
609 begin
610 if Index < inherited GetVerbCount then
611 inherited ExecuteVerb(Index) else
612 begin
613 Dec(Index, inherited GetVerbCount);
614 case Index of
615 0:
616 if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
617 Designer.Modified;
618 1: (Component as TIBDataSet).ExecSQL;
619 end;
620 end;
621 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 2: Result := SInterbaseExpressVersion;
633 end;
634 end;
635 end;
636
637 function TIBDataSetEditor.GetVerbCount: Integer;
638 begin
639 Result := inherited GetVerbCount + 3;
640 end;
641
642 { TIBEventListProperty }
643
644 function TIBEventListProperty.GetAttributes: TPropertyAttributes;
645 begin
646 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
647 end;
648
649 procedure TIBEventListProperty.Edit;
650 var
651 Events: TStrings;
652 IBEvents: TIBEvents;
653 begin
654 IBEvents := GetComponent(0) as TIBEvents;
655 Events := TStringList.Create;
656 try
657 Events.Assign( IBEvents.Events);
658 if EditAlerterEvents( Events) then
659 begin
660 IBEvents.Events.Assign(Events);
661 Modified
662 end;
663 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 if Index < inherited GetVerbCount then
728 inherited ExecuteVerb(Index) else
729 begin
730 Query := Component as TIBQuery;
731 Dec(Index, inherited GetVerbCount);
732 case Index of
733 0: Query.ExecSQL;
734 1: if ibselectsqleditor.EditSQL(Query.Database,Query.SQL) then Designer.Modified;
735 end;
736 end;
737 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 Result := inherited GetVerbCount + 3;
756 end;
757
758 { TIBStoredProcEditor }
759
760 procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
761 begin
762 if Index < inherited GetVerbCount then
763 inherited ExecuteVerb(Index) else
764 begin
765 Dec(Index, inherited GetVerbCount);
766 if Index = 0 then (Component as TIBStoredProc).ExecProc;
767 end;
768 end;
769
770 function TIBStoredProcEditor.GetVerb(Index: Integer): string;
771 begin
772 if Index < inherited GetVerbCount then
773 Result := inherited GetVerb(Index) else
774 begin
775 Dec(Index, inherited GetVerbCount);
776 case Index of
777 0: Result := SExecute;
778 1: Result := SInterbaseExpressVersion;
779 end;
780 end;
781 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 (*
805 { 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 end;*)
832
833 { TIBUpdateSQLProperty }
834
835 procedure TIBUpdateSQLProperty.Edit;
836 var
837 IBDataset: TIBDataset;
838 begin
839 IBDataset := GetComponent(0) as TIBDataset;
840 if IBModifySQLEditor.EditSQL(IBDataSet.Database,IBDataSet.ModifySQL) then Modified;
841 end;
842
843 { TIBUpdateSQLUpdateProperty }
844
845 procedure TIBUpdateSQLUpdateProperty.Edit;
846 begin
847 GetObjects;
848 if IBModifySQLEditor.EditSQL(FDatabase,FIBUpdateSQL.ModifySQL) then Modified;
849 end;
850
851 { TIBRefreshSQLProperty }
852
853 procedure TIBRefreshSQLProperty.Edit;
854 var
855 IBDataset: TIBDataset;
856 aDatabase: TIBDatabase;
857 begin
858 IBDataset := GetComponent(0) as TIBDataset;
859 if IBRefreshSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.RefreshSQL) then Modified;
860 end;
861
862 { TIBUpdateSQLRefreshSQLProperty }
863
864 procedure TIBUpdateSQLRefreshSQLProperty.Edit;
865 begin
866 GetObjects;
867 if IBRefreshSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.RefreshSQL) then Modified;
868 end;
869
870 { TIBDeleteSQLProperty }
871
872 procedure TIBDeleteSQLProperty.Edit;
873 var
874 IBDataset: TIBDataset;
875 begin
876 IBDataset := GetComponent(0) as TIBDataset;
877 if IBDeleteSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.DeleteSQL) then Modified;
878 end;
879
880 { TIBUpdateSQLDeleteProperty }
881
882 function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
883 begin
884 Result:=inherited GetAttributes;
885 end;
886
887 procedure TIBUpdateSQLDeleteProperty.Edit;
888 begin
889 GetObjects;
890 if IBDeleteSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.DeleteSQL) then Modified;
891 end;
892
893 { TUpdateSQLPropertyEditor }
894
895 function TUpdateSQLPropertyEditor.GetObjects: boolean;
896 begin
897 Result := false;
898 FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
899 if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
900 Exit;
901 FDatabase := nil;
902 if FIBUpdateSQL.DataSet is TIBQuery then
903 begin
904 FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
905 Result := true
906 end;
907 end;
908
909 { TIBInsertSQLProperty }
910
911 procedure TIBInsertSQLProperty.Edit;
912 var
913 IBDataset: TIBDataset;
914 begin
915 IBDataset := GetComponent(0) as TIBDataset;
916 if IBInsertSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.InsertSQL) then Modified;
917 end;
918
919 { TIBUpdateSQLInsertSQLProperty }
920
921 procedure TIBUpdateSQLInsertSQLProperty.Edit;
922 begin
923 GetObjects;
924 if IBInsertSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.InsertSQL) then Modified;
925 end;
926
927 { TIBGeneratorProperty }
928
929 function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
930 begin
931 Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
932 end;
933
934 procedure TIBGeneratorProperty.Edit;
935 begin
936 if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
937 end;
938
939 { 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 initialization
970 {$I IBDBReg.lrs}
971 end.