ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/design/IBDBReg.pas
(Generate patch)

Comparing ibx/trunk/design/IBDBReg.pas (file contents):
Revision 80 by tony, Mon Jan 1 11:31:07 2018 UTC vs.
Revision 209 by tony, Wed Mar 14 12:48:51 2018 UTC

# Line 27 | Line 27
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                                                 }
30 > {    Associates Ltd 2011 - 2018                                               }
31   {************************************************************************}
32  
33   unit IBDBReg;
# Line 83 | Line 83 | type
83      procedure GetValues(Proc: TGetStrProc); override;
84    end;
85  
86 +  { TIBPackageNameProperty
87 +    Editor for the TIBStoredProc.PackageName property.  Displays a drop-down list of all
88 +    the StoredProcedures in the Database.}
89 +  TIBPackageNameProperty = class(TIBNameProperty)
90 +  public
91 +    procedure GetValues(Proc: TGetStrProc); override;
92 +  end;
93 +
94    { TIBTableNameProperty
95      Editor for the TIBTable.TableName property.  Displays a drop-down list of all
96      the Tables in the Database.}
# Line 195 | Line 203 | type
203     function GetVerbCount: Integer; override;
204    end;
205  
206 <  TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
206 >  { TIBXServiceEditor }
207 >
208 >  TIBXServiceEditor = class(TComponentEditor)
209    public
210 <    procedure Edit; override;
210 >    procedure ExecuteVerb(Index: Integer); override;
211 >    function GetVerb(Index: Integer): string; override;
212 >    function GetVerbCount: Integer; override;
213 >  end;
214 >
215 >  TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
216    end;
217  
218    { TIBTableFieldLinkProperty }
# Line 316 | Line 331 | type
331      procedure Edit; override;
332    end;
333  
334 +  { TIBUpdateRefreshSQLProperty }
335 +
336 +  TIBUpdateRefreshSQLProperty = class(TSQLPropertyEditor)
337 +  protected
338 +    FIBUpdate: TIBUpdate;
339 +    FDatabase: TIBDatabase;
340 +    function GetObjects: boolean;
341 +  public
342 +    procedure Edit; override;
343 +  end;
344 +
345 +
346   { TIBEventListProperty }
347  
348    TIBEventListProperty = class(TClassProperty)
# Line 383 | Line 410 | implementation
410  
411   uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
412       IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
413 <     IBServices, IBDatabaseEdit, IBTransactionEdit,
413 >     IBServices, IBXServices, IBDatabaseEdit, IBTransactionEdit,
414       IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
415       IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
416       IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
417       IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
418       IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
419 <     IBArrayGrid, IBVersion, IBDataOutput;
419 >     IBArrayGrid, IBVersion, IBDataOutput, IBXServiceEditor;
420  
421   const
422    IBPalette1 = 'Firebird'; {do not localize}
423 <  IBPalette2 = 'Firebird Admin'; {do not localize}
423 >  IBPalette2 = 'Firebird Legacy Admin'; {do not localize}
424    IBPalette3 = 'Firebird Data Controls';   {do not localize}
425 <  
425 >  IBPalette4 = 'Firebird Admin'; {do not localize}
426 >
427   resourcestring
428     SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
429     SEditSQL = 'Edit SQL';
# Line 416 | Line 444 | begin
444      Exit;
445    end;
446  
447 <  RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField]);
447 >  RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
448 >    TIBSmallintField, TIBIntegerField, TIBLargeIntField]);
449    {$if lcl_fullversion < 01010000}
450    {see http://bugs.freepascal.org/view.php?id=19035 }
451    RegisterNoIcon([TIntegerField]);
# Line 427 | Line 456 | begin
456         TIBStoredProc,TIBBatchMove,  TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
457         TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
458    if FirebirdAPI.HasServiceAPI  then
459 +  begin
460 +    RegisterComponents(IBPalette4, [TIBXServicesConnection, TIBXConfigService,
461 +      TIBXClientSideBackupService, TIBXServerSideBackupService,
462 +      TIBXClientSideRestoreService, TIBXServerSideRestoreService,
463 +      TIBXValidationService, TIBXOnlineValidationService, TIBXStatisticalService,
464 +      TIBXLogService, TIBXSecurityService, TIBXServerProperties,
465 +      TIBXLimboTransactionResolutionService,TIBXServicesUserList, TIBXServicesLimboTransactionsList]);
466      RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
467 <      TIBRestoreService, TIBValidationService, TIBStatisticalService,
467 >      TIBRestoreService, TIBValidationService,
468 >      TIBOnlineValidationService, TIBStatisticalService,
469        TIBLogService, TIBSecurityService, TIBServerProperties]);
470 <
470 >  end;
471  
472    RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
473 +
474    RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
475    RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
476 +  RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
477    RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
478    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
479    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
# Line 453 | Line 492 | begin
492    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
493    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
494    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
495 +  RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
496    RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
497    RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
498    RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
499 +  RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
500  
501    RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
502    RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
# Line 466 | Line 507 | begin
507    RegisterComponentEditor(TIBSQL, TIBSQLEditor);
508    RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
509    RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
510 +  RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
511  
512  
513    {Firebird Data Access Controls}
# Line 477 | Line 519 | begin
519    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'TextField', TIBTreeViewFieldProperty);
520    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
521    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
522 +  RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
523 +  RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
524  
525    IBGUIInterface :=  TIBDSLCLInterface.Create;
526   end;
# Line 503 | Line 547 | begin
547    end;
548   end;
549  
550 + { TIBXServiceEditor }
551 +
552 + procedure TIBXServiceEditor.ExecuteVerb(Index: Integer);
553 + begin
554 +  if Index < inherited GetVerbCount then
555 +    inherited ExecuteVerb(Index) else
556 +  begin
557 +    Dec(Index, inherited GetVerbCount);
558 +    case Index of
559 +      0 : if IBXServiceEditor.EditIBXService(TIBXServicesConnection(Component)) then Designer.Modified;
560 +    end;
561 +  end;
562 + end;
563 +
564 + function TIBXServiceEditor.GetVerb(Index: Integer): string;
565 + begin
566 +  if Index < inherited GetVerbCount then
567 +    Result := inherited GetVerb(Index) else
568 +  begin
569 +    Dec(Index, inherited GetVerbCount);
570 +    case Index of
571 +      0: Result := SIBServiceEditor;
572 +      1 : Result := SInterbaseExpressVersion;
573 +    end;
574 +  end;
575 + end;
576 +
577 + function TIBXServiceEditor.GetVerbCount: Integer;
578 + begin
579 +  Result := inherited GetVerbCount + 2;
580 + end;
581 +
582 + { TIBUpdateRefreshSQLProperty }
583 +
584 + function TIBUpdateRefreshSQLProperty.GetObjects: boolean;
585 + begin
586 +  Result := false;
587 +  FIBUpdate := GetComponent(0) as TIBUpdate;
588 +  if not assigned(FIBUpdate) or not assigned(FIBUpdate.DataSet) then
589 +    Exit;
590 +  FDatabase := nil;
591 +  if FIBUpdate.DataSet is TIBQuery then
592 +  begin
593 +    FDatabase := (FIBUpdate.DataSet as TIBQuery).Database;
594 +    Result := true
595 +  end;
596 + end;
597 +
598 + procedure TIBUpdateRefreshSQLProperty.Edit;
599 + begin
600 +  GetObjects;
601 +  if IBRefreshSQLEditor.EditSQL(FIBUpdate.DataSet,FIBUpdate.RefreshSQL) then Modified;
602 + end;
603 +
604 + { TIBPackageNameProperty }
605 +
606 + procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
607 + var
608 +   StoredProc : TIBStoredProc;
609 +   i : integer;
610 + begin
611 +    StoredProc := GetComponent(0) as TIBStoredProc;
612 +    if StoredProc.Database = nil then
613 +      Exit;
614 +
615 +    with StoredProc do
616 +    try
617 +      for I := 0 to PackageNames.Count - 1 do
618 +        Proc (PackageNames[i]);
619 +    except on E: Exception do
620 +      MessageDlg(E.Message,mtError,[mbOK],0)
621 +    end;
622 + end;
623 +
624   { TIBIndexDefsProperty }
625  
626   procedure TIBIndexDefsProperty.Edit;
# Line 1040 | Line 1158 | begin
1158    Result := inherited GetVerbCount + 2;
1159   end;
1160  
1043 { TIBStoredProcParamsProperty }
1044
1045 procedure TIBStoredProcParamsProperty.Edit;
1046 var
1047  StoredProc: TIBStoredProc;
1048  Params: TParams;
1049 begin
1050  StoredProc := (GetComponent(0) as TIBStoredProc);
1051  Params := TParams.Create(nil);
1052  try
1053    StoredProc.CopyParams(Params);
1054  finally
1055    Params.Free;
1056  end;
1057  inherited Edit;
1058 end;
1059
1161   { TIBTableFieldLinkProperty }
1162  
1163   procedure TIBTableFieldLinkProperty.Edit;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines