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

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 {************************************************************************}
28
29 unit IBDBReg;
30
31 {$MODE Delphi}
32
33 (*
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 uses {Windows,} SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
54 DB, IBTable, IBDatabase, IBEventsEditor,
55 IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor;
56
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 TIBQueryEditor = class(TComponentEditor)
128 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 TIBStoredProcEditor = class(TComponentEditor)
137 public
138 procedure ExecuteVerb(Index: Integer); override;
139 function GetVerb(Index: Integer): string; override;
140 function GetVerbCount: Integer; override;
141 end;
142
143 { TIBDataSetEditor }
144
145 TIBDataSetEditor = class(TComponentEditor)
146 public
147 procedure ExecuteVerb(Index: Integer); override;
148 function GetVerb(Index: Integer): string; override;
149 function GetVerbCount: Integer; override;
150 end;
151
152 { 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 TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
162 public
163 procedure Edit; override;
164 end;
165 (*
166 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 *)
178 { TSQLPropertyEditor }
179
180 TSQLPropertyEditor = class(TStringsPropertyEditor)
181 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 { 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 public
219 procedure Edit; override;
220 end;
221
222 { TIBRefreshSQLProperty }
223
224 TIBRefreshSQLProperty = class(TSQLPropertyEditor)
225 public
226 procedure Edit; override;
227 end;
228
229 { TIBInsertSQLProperty }
230
231 TIBInsertSQLProperty = class(TSQLPropertyEditor)
232 public
233 procedure Edit; override;
234 end;
235
236 { TIBDeleteSQLProperty }
237
238 TIBDeleteSQLProperty = class(TSQLPropertyEditor)
239 public
240 procedure Edit; override;
241 end;
242
243 { TIBUpdateSQLUpdateProperty }
244
245 TIBUpdateSQLUpdateProperty = class(TUpdateSQLPropertyEditor)
246 public
247 procedure Edit; override;
248 end;
249
250 { TIBUpdateSQLRefreshSQLProperty }
251
252 TIBUpdateSQLRefreshSQLProperty = class(TUpdateSQLPropertyEditor)
253 public
254 procedure Edit; override;
255 end;
256
257 { TIBUpdateSQLInsertSQLProperty }
258
259 TIBUpdateSQLInsertSQLProperty = class(TUpdateSQLPropertyEditor)
260 public
261 procedure Edit; override;
262 end;
263
264 { TIBUpdateSQLDeleteProperty }
265
266 TIBUpdateSQLDeleteProperty = class(TUpdateSQLPropertyEditor)
267 public
268 function GetAttributes: TPropertyAttributes; override;
269 procedure Edit; override;
270 end;
271
272 { TIBEventListProperty }
273
274 TIBEventListProperty = class(TClassProperty)
275 public
276 function GetAttributes: TPropertyAttributes; override;
277 procedure Edit; override;
278 end;
279
280 {TIBGeneratorProperty}
281
282 TIBGeneratorProperty = class(TPersistentPropertyEditor)
283 public
284 function GetAttributes: TPropertyAttributes; override;
285 procedure Edit; override;
286 end;
287
288 procedure Register;
289
290 implementation
291
292 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
299 procedure Register;
300 begin
301 RegisterComponents(IBPalette1, [TIBTable, TIBQuery,
302 TIBStoredProc, TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBBatchMove,
303 TIBDataSet, TIBSQL, TIBDatabaseInfo, (*TIBSQLMonitor,*) TIBEvents, TIBExtract]);
304 if (TryIBLoad) and IBServiceAPIPresent then
305 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
306 TIBRestoreService, TIBValidationService, TIBStatisticalService,
307 TIBLogService, TIBSecurityService, TIBServerProperties]);
308 RegisterClasses([TIBStringField, TIBBCDField]);
309 // RegisterFields([TIBStringField, TIBBCDField]); --not sure if this is needed in lazarus
310 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 // RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
317 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
318 RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
319 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 RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLProperty); {do not localize}
324 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 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
329 RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'Generator', TIBGeneratorProperty); {do not localize}
330
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 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
468 end;
469
470 { TIBQuerySQLProperty }
471
472 procedure TIBQuerySQLProperty.Edit;
473 var
474 Query: TIBQuery;
475 begin
476 Query := GetComponent(0) as TIBQuery;
477 if Assigned(Query.Database) and
478 IBSelectSQLEditor.EditSQL(Query.Database,Query.Transaction,Query.SQL) then Modified;
479 end;
480
481 { TIBDatasetSQLProperty }
482
483 procedure TIBDatasetSQLProperty.Edit;
484 var
485 IBDataset: TIBDataset;
486 begin
487 IBDataset := GetComponent(0) as TIBDataset;
488 if Assigned(IBDataSet.Database) and
489 IBSelectSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.Transaction,IBDataSet.SelectSQL) then Modified;
490 end;
491
492 { TIBSQLProperty }
493
494 procedure TIBSQLProperty.Edit;
495 var
496 IBSQL: TIBSQL;
497 begin
498 IBSQL := GetComponent(0) as TIBSQL;
499 if IBSelectSQLEditor.EditSQL(IBSQL.Database,IBSQL.Transaction,IBSQL.SQL) then Modified;
500 end;
501
502 { TIBUpdateSQLEditor }
503
504 procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
505 begin
506 if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
507 end;
508
509 function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
510 begin
511 case Index of
512 0 : Result := SIBUpdateSQLEditor;
513 1: Result := SInterbaseExpressVersion;
514 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 if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
531 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 2: Result := SInterbaseExpressVersion;
546 end;
547 end;
548 end;
549
550 function TIBDataSetEditor.GetVerbCount: Integer;
551 begin
552 Result := 3;
553 end;
554
555 { TIBEventListProperty }
556
557 function TIBEventListProperty.GetAttributes: TPropertyAttributes;
558 begin
559 Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
560 end;
561
562 procedure TIBEventListProperty.Edit;
563 var
564 Events: TStrings;
565 IBEvents: TIBEvents;
566 begin
567 IBEvents := GetComponent(0) as TIBEvents;
568 Events := TStringList.Create;
569 try
570 Events.Assign( IBEvents.Events);
571 if EditAlerterEvents( Events) then IBEvents.Events.Assign(Events);
572 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 1: if ibselectsqleditor.EditSQL(Query.Database,Query.Transaction,Query.SQL) then Designer.Modified;
641 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 Result := 3;
661 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 (*
700 { 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 end;*)
727
728 { TIBUpdateSQLProperty }
729
730 procedure TIBUpdateSQLProperty.Edit;
731 var
732 IBDataset: TIBDataset;
733 begin
734 IBDataset := GetComponent(0) as TIBDataset;
735 if Assigned(IBDataSet.Database) and
736 IBModifySQLEditor.EditSQL(IBDataSet.Database,IBDataSet.Transaction,IBDataSet.ModifySQL) then Modified;
737 end;
738
739 { TIBUpdateSQLUpdateProperty }
740
741 procedure TIBUpdateSQLUpdateProperty.Edit;
742 begin
743 if not GetObjects then
744 ShowMessage('Not Linked to an IBQuery object or Database not assigned')
745 else
746 if IBModifySQLEditor.EditSQL(FDatabase,FDatabase.DefaultTransaction,FIBUpdateSQL.ModifySQL) then Modified;
747 end;
748
749 { TIBRefreshSQLProperty }
750
751 procedure TIBRefreshSQLProperty.Edit;
752 var
753 IBDataset: TIBDataset;
754 begin
755 IBDataset := GetComponent(0) as TIBDataset;
756 if Assigned(IBDataSet.Database) and
757 IBRefreshSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.Transaction,IBDataSet.RefreshSQL) then Modified;
758 end;
759
760 { TIBUpdateSQLRefreshSQLProperty }
761
762 procedure TIBUpdateSQLRefreshSQLProperty.Edit;
763 begin
764 if not GetObjects then
765 ShowMessage('Not Linked to an IBQuery object or Database not assigned')
766 else
767 if IBRefreshSQLEditor.EditSQL(FDatabase,FDatabase.DefaultTransaction,FIBUpdateSQL.RefreshSQL) then Modified;
768 end;
769
770 { TIBDeleteSQLProperty }
771
772 procedure TIBDeleteSQLProperty.Edit;
773 var
774 IBDataset: TIBDataset;
775 begin
776 IBDataset := GetComponent(0) as TIBDataset;
777 if Assigned(IBDataSet.Database) and
778 IBDeleteSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.Transaction,IBDataSet.DeleteSQL) then Modified;
779 end;
780
781 { TIBUpdateSQLDeleteProperty }
782
783 function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
784 begin
785 Result:=inherited GetAttributes;
786 end;
787
788 procedure TIBUpdateSQLDeleteProperty.Edit;
789 begin
790 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 end;
795
796 { TUpdateSQLPropertyEditor }
797
798 function TUpdateSQLPropertyEditor.GetObjects: boolean;
799 begin
800 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 begin
806 FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
807 Result := true
808 end;
809 end;
810
811 { TIBInsertSQLProperty }
812
813 procedure TIBInsertSQLProperty.Edit;
814 var
815 IBDataset: TIBDataset;
816 begin
817 IBDataset := GetComponent(0) as TIBDataset;
818 if Assigned(IBDataSet.Database) and
819 IBInsertSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.Transaction,IBDataSet.InsertSQL) then Modified;
820 end;
821
822 { TIBUpdateSQLInsertSQLProperty }
823
824 procedure TIBUpdateSQLInsertSQLProperty.Edit;
825 begin
826 if not GetObjects then
827 ShowMessage('Not Linked to an IBQuery object or Database not assigned')
828 else
829 if IBInsertSQLEditor.EditSQL(FDatabase,FDatabase.DefaultTransaction,FIBUpdateSQL.InsertSQL) then Modified;
830 end;
831
832 { TIBGeneratorProperty }
833
834 function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
835 begin
836 Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
837 end;
838
839 procedure TIBGeneratorProperty.Edit;
840 begin
841 if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
842 end;
843
844 initialization
845 {$I IBDBReg.lrs}
846 end.