ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/DBAdmin/MainFormUnit.pas
(Generate patch)

Comparing ibx/trunk/examples/DBAdmin/MainFormUnit.pas (file contents):
Revision 267 by tony, Fri Dec 28 10:44:23 2018 UTC vs.
Revision 272 by tony, Mon Feb 4 13:34:37 2019 UTC

# Line 22 | Line 22 | unit MainFormUnit;
22   interface
23  
24   uses
25 <  Classes, SysUtils, FileUtil, SynEdit, SynHighlighterSQL,
26 <  SynGutterCodeFolding, Forms, Controls, Graphics, Dialogs, Menus, ComCtrls,
27 <  ActnList, StdCtrls, DbCtrls, ExtCtrls, Buttons, db, IBLookupComboEditBox,
28 <  IBDynamicGrid, IBTreeView, IBDatabaseInfo, IBXServices, IBExtract, IB;
25 >  Classes, SysUtils, FileUtil, SynEdit, SynHighlighterSQL, SynGutterCodeFolding,
26 >  Forms, Controls, Graphics, Dialogs, Menus, ComCtrls, ActnList, StdCtrls,
27 >  DbCtrls, ExtCtrls, Buttons, db, IBLookupComboEditBox, IBDynamicGrid,
28 >  IBTreeView, IBDatabaseInfo, IBXServices, IBExtract, IB;
29  
30   type
31  
# Line 35 | Line 35 | type
35      AccessRightsPopup: TPopupMenu;
36      AccessRightsSource: TDataSource;
37      ClientLibrary: TLabel;
38 +    ConfigDataGrid: TIBDynamicGrid;
39 +    ConfigDataLabel: TLabel;
40 +    ConfigDataSource: TDataSource;
41 +    Edit12: TEdit;
42 +    Edit2: TEdit;
43 +    Edit3: TEdit;
44 +    Edit4: TEdit;
45 +    Edit5: TEdit;
46 +    Edit6: TEdit;
47 +    Edit7: TEdit;
48 +    Edit8: TEdit;
49 +    Edit9: TEdit;
50      Label44: TLabel;
51      ClientServerVersion: TMemo;
52 +    Label45: TLabel;
53 +    Label46: TLabel;
54 +    Label47: TLabel;
55 +    Label48: TLabel;
56 +    Label49: TLabel;
57 +    Label50: TLabel;
58 +    Label51: TLabel;
59 +    Label52: TLabel;
60 +    Label53: TLabel;
61 +    Label54: TLabel;
62 +    OpenDatabasesList: TMemo;
63      MenuItem20: TMenuItem;
64      MenuItem21: TMenuItem;
65 +    Panel10: TPanel;
66      RunScript: TAction;
67      AutoAdmin: TCheckBox;
68      DatabaseAliasName: TEdit;
# Line 147 | Line 171 | type
171      DatabaseOnline: TCheckBox;
172      DBCharacterSet: TIBLookupComboEditBox;
173      DBCharSetRO: TDBEdit;
174 <    DBEdit1: TDBEdit;
174 >    DateDbCreated: TDBEdit;
175      DBEdit4: TDBEdit;
176      DBIsReadOnly: TCheckBox;
177      DBText1: TDBText;
# Line 166 | Line 190 | type
190      IBDynamicGrid2: TIBDynamicGrid;
191      AttmtTimer: TTimer;
192      UserManagerGrid: TIBDynamicGrid;
193 <    IBDynamicGrid4: TIBDynamicGrid;
193 >    RolesGrid: TIBDynamicGrid;
194      TagsGrid: TIBDynamicGrid;
195      IsShadowChk: TCheckBox;
196      Label1: TLabel;
# Line 184 | Line 208 | type
208      Label20: TLabel;
209      Label21: TLabel;
210      Label22: TLabel;
211 <    Label23: TLabel;
211 >    DateDBCreatedLabel: TLabel;
212      Label24: TLabel;
213      Label25: TLabel;
214      Label26: TLabel;
# Line 213 | Line 237 | type
237      Panel3: TPanel;
238      Panel4: TPanel;
239      Panel5: TPanel;
240 <    Panel6: TPanel;
240 >    RolesHeaderPanel: TPanel;
241      TagsHeader: TPanel;
242      PrimaryDBFile: TEdit;
243      Properties: TTabSheet;
# Line 224 | Line 248 | type
248      SaveDialog: TSaveDialog;
249      SchemaTab: TTabSheet;
250      ServerLog: TMemo;
227    ServerPropMemo: TMemo;
251      ServerTab: TTabSheet;
252      Splitter1: TSplitter;
253      Splitter2: TSplitter;
# Line 355 | Line 378 | type
378      FLoading: boolean;
379      FLastStatsIndex: integer;
380      FServerError: boolean;
381 <    procedure HandleDBConnect(Sender: TObject);
382 <    procedure HandleLoadData(Sender: TObject);
360 <    procedure LoadData;
381 >    procedure DoDBOpen(Data: PtrInt);
382 >    procedure LoadServerData;
383      procedure DoExtract(Data: PtrInt);
362    procedure ConfigureForServerVersion;
384      procedure ConfigureOnlineValidation;
385 +  protected
386 +    procedure HandleDBConnect(Sender: TObject);
387 +    procedure HandleLoadData(Sender: TObject);
388 +    procedure ConfigureForServerVersion; virtual;
389 +    procedure ConnectToDatabase; virtual;
390 +    procedure LoadData; virtual;
391    public
392    end;
393  
# Line 379 | Line 406 | uses DataModule, ShutdownRegDlgUnit, Add
406   procedure TMainForm.FormShow(Sender: TObject);
407   begin
408    {Set IB Exceptions to only show text message - omit SQLCode and Engine Code}
409 <  DatabaseData.IBDatabase1.FirebirdAPI.GetStatus.SetIBDataBaseErrorMessages([ShowIBMessage]);
409 >  DBDataModule.IBDatabase1.FirebirdAPI.GetStatus.SetIBDataBaseErrorMessages([ShowIBMessage]);
410    Application.ExceptionDialog := aedOkMessageBox;
411    PageControl1.ActivePage := Properties;
412 <  DatabaseData.AfterDBConnect := @HandleDBConnect;
413 <  DatabaseData.AfterDataReload := @HandleLoadData;
412 >  DBDataModule.AfterDBConnect := @HandleDBConnect;
413 >  DBDataModule.AfterDataReload := @HandleLoadData;
414    AccessRightsTreeView.DataSource := nil;
415    AccessRightsTreeView.DataSource := AccessRightsSource;
416    SubjectAccessRightsGrid.DataSource := nil;
417    SubjectAccessRightsGrid.DataSource := SubjectAccessRightsSource;
418 <  DatabaseData.Connect;
419 <  if not DatabaseData.IBDatabase1.Connected then Close;
418 >  PageControl1.Visible := false;
419 >  Application.QueueAsyncCall(@DoDBOpen,0);
420   end;
421  
422   procedure TMainForm.IsShadowChkChange(Sender: TObject);
423   begin
424    if FLoading then Exit;
425 <  if not DatabaseData.IsShadowDatabase then
425 >  if not DBDataModule.IsShadowDatabase then
426    begin
427      MessageDlg('A Normal Database cannot be changed into a Shadow Database',mtError,[mbOK],0);
428      FLoading := true;
# Line 406 | Line 433 | begin
433      end;
434    end
435    else
436 <    DatabaseData.ActivateShadow;
436 >    DBDataModule.ActivateShadow;
437   end;
438  
439   procedure TMainForm.LimboTabHide(Sender: TObject);
# Line 423 | Line 450 | end;
450   procedure TMainForm.LingerDelayEditingDone(Sender: TObject);
451   begin
452    if FLoading then Exit;
453 <  DatabaseData.LingerDelay := LingerDelay.Text;
453 >  DBDataModule.LingerDelay := LingerDelay.Text;
454   end;
455  
456   procedure TMainForm.NoReserveChange(Sender: TObject);
457   begin
458    if FLoading then Exit;
459 <  DatabaseData.NoReserve := NoReserve.Checked;
459 >  DBDataModule.NoReserve := NoReserve.Checked;
460   end;
461  
462   procedure TMainForm.DBCharacterSetEditingDone(Sender: TObject);
# Line 441 | Line 468 | end;
468  
469   procedure TMainForm.DBCommentsEditingDone(Sender: TObject);
470   begin
471 <  DatabaseData.Description := DBComments.Lines.Text;
471 >  DBDataModule.Description := DBComments.Lines.Text;
472   end;
473  
474   procedure TMainForm.AutoAdminChange(Sender: TObject);
475   begin
476    if FLoading then Exit;
477    try
478 <    DatabaseData.AutoAdmin := AutoAdmin.Checked;
478 >    DBDataModule.AutoAdmin := AutoAdmin.Checked;
479    except on E:Exception do
480     begin
481      MessageDlg(E.message,mtError,[mbOK],0);
# Line 469 | Line 496 | var FileName: string;
496      Pages: boolean;
497   begin
498    StartAt := 0;
499 <  if DatabaseData.IsDatabaseOnline then
499 >  if DBDataModule.IsDatabaseOnline then
500    begin
501      MessageDlg('The database must be shutdown before adding secondary files',
502                   mtError,[mbOK],0);
# Line 484 | Line 511 | begin
511        if FileLength <> -1 then
512          FileLength := FileLength*1024*1024 div IBDatabaseInfo.PageSize;
513      end;
514 <    DatabaseData.AddSecondaryFile(FileName,StartAt,FileLength);
514 >    DBDataModule.AddSecondaryFile(FileName,StartAt,FileLength);
515    end;
516   end;
517  
# Line 505 | Line 532 | end;
532  
533   procedure TMainForm.AddShadowSetExecute(Sender: TObject);
534   begin
535 <  DatabaseData.AddShadowSet;
535 >  DBDataModule.AddShadowSet;
536   end;
537  
538   procedure TMainForm.AddTagExecute(Sender: TObject);
# Line 535 | Line 562 | end;
562   procedure TMainForm.AddUserUpdate(Sender: TObject);
563   begin
564    (Sender as TAction).Enabled := (UserListSource.State = dsBrowse) and
565 <     ((DatabaseData.DBUserName = 'SYSDBA') or DatabaseData.HasUserAdminPrivilege);
565 >     ((DBDataModule.ServiceUserName = 'SYSDBA') or DBDataModule.HasUserAdminPrivilege);
566   end;
567  
568   procedure TMainForm.ApplySelectedExecute(Sender: TObject);
569   begin
570 <  DatabaseData.LimboResolution(NoGlobalAction,LimboReport.Lines);
570 >  DBDataModule.LimboResolution(NoGlobalAction,LimboReport.Lines);
571   end;
572  
573   procedure TMainForm.AttachmentsTabHide(Sender: TObject);
# Line 558 | Line 585 | end;
585  
586   procedure TMainForm.AttmtTimerTimer(Sender: TObject);
587   begin
588 <  DatabaseData.CurrentTransaction.Commit; {force a refresh}
588 >  DBDataModule.CurrentTransaction.Commit; {force a refresh}
589   end;
590  
591   procedure TMainForm.BackupExecute(Sender: TObject);
592   begin
593 <  DatabaseData.BackupDatabase;
593 >  DBDataModule.BackupDatabase;
594   end;
595  
596   procedure TMainForm.ChgPasswordExecute(Sender: TObject);
# Line 591 | Line 618 | end;
618  
619   procedure TMainForm.Commit2PhaseExecute(Sender: TObject);
620   begin
621 <  DatabaseData.LimboResolution(RecoverTwoPhaseGlobal,LimboReport.Lines);
621 >  DBDataModule.LimboResolution(RecoverTwoPhaseGlobal,LimboReport.Lines);
622   end;
623  
624   procedure TMainForm.CommitAllExecute(Sender: TObject);
625   begin
626 <  DatabaseData.LimboResolution(CommitGlobal,LimboReport.Lines);
626 >  DBDataModule.LimboResolution(CommitGlobal,LimboReport.Lines);
627   end;
628  
629   procedure TMainForm.CommitAllUpdate(Sender: TObject);
# Line 613 | Line 640 | begin
640    ShutDownMode := DenyTransaction;
641    Delay := 60;
642    if DatabaseOnline.Checked then
643 <    DatabaseData.BringDatabaseOnline
643 >    DBDataModule.BringDatabaseOnline
644    else
645    if ShutdownReqDlg.ShowModal(DatabaseAliasName.Text,ShutDownMode,Delay) = mrOK then
646 <    DatabaseData.Shutdown(ShutdownMode,Delay);
646 >    DBDataModule.Shutdown(ShutdownMode,Delay);
647   end;
648  
649   procedure TMainForm.DBIsReadOnlyChange(Sender: TObject);
650   begin
651    if FLoading then Exit;
652    try
653 <    DatabaseData.DBReadOnly := DBIsReadOnly.Checked;
653 >    DBDataModule.DBReadOnly := DBIsReadOnly.Checked;
654    except on E:Exception do
655       MessageDlg(E.message,mtError,[mbOK],0);
656    end;
# Line 632 | Line 659 | end;
659   procedure TMainForm.DBSQLDialectEditingDone(Sender: TObject);
660   begin
661    if FLoading then Exit;
662 <  DatabaseData.DBSQLDialect := StrToInt(DBSQLDialect.Text);
662 >  DBDataModule.DBSQLDialect := StrToInt(DBSQLDialect.Text);
663   end;
664  
665   procedure TMainForm.DeleteTagExecute(Sender: TObject);
# Line 655 | Line 682 | end;
682   procedure TMainForm.DeleteUserUpdate(Sender: TObject);
683   begin
684    (Sender as TAction).Enabled := UserListSource.DataSet.Active and (UserListSource.DataSet.RecordCount > 0) and
685 <    ((DatabaseData.DBUserName = 'SYSDBA') or DatabaseData.HasUserAdminPrivilege);
685 >    ((DBDataModule.ServiceUserName = 'SYSDBA') or DBDataModule.HasUserAdminPrivilege);
686   end;
687  
688   procedure TMainForm.DisconnectAttachmentExecute(Sender: TObject);
# Line 678 | Line 705 | begin
705    if MessageDlg(Format('Do you really want to delete the database "%s". You will lose all your data!',
706          [IBDatabaseInfo.Database.DatabaseName]),mtConfirmation,[mbYes,mbNo],0) = mrYes then
707    begin
708 <    DatabaseData.DropDatabase;
709 <    DatabaseData.Connect;
708 >    DBDataModule.DropDatabase;
709 >    DBDataModule.Connect;
710      if not IBDatabaseInfo.Database.Connected then Close;
711    end;
712   end;
# Line 697 | Line 724 | begin
724      if (AccessRightsTreeView.Selected = nil) or (AccessRightsTreeView.Selected.Parent = nil) then
725        SubjectAccessRightsSource.DataSet.Active := false
726      else
727 <      DatabaseData.SyncSubjectAccessRights(TIBTreeNode(AccessRightsTreeView.Selected).KeyValue);
727 >      DBDataModule.SyncSubjectAccessRights(TIBTreeNode(AccessRightsTreeView.Selected).KeyValue);
728    end;
729   end;
730  
731   procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
732   begin
733 <  DatabaseData.Disconnect;
733 >  DBDataModule.Disconnect;
734   end;
735  
736   procedure TMainForm.MappingsTabHide(Sender: TObject);
# Line 719 | Line 746 | end;
746  
747   procedure TMainForm.PageBuffersEditingDone(Sender: TObject);
748   begin
749 <  DatabaseData.PageBuffers := StrToInt(PageBuffers.Text);
749 >  DBDataModule.PageBuffers := StrToInt(PageBuffers.Text);
750   end;
751  
752   procedure TMainForm.QuitExecute(Sender: TObject);
# Line 743 | Line 770 | procedure TMainForm.RevokeAllExecute(Sen
770   begin
771    if MessageDlg('Revoke all Access Rights from User ' + Trim(AccessRightsTreeView.Selected.Text),
772        mtConfirmation,[mbYes,mbNo],0) = mrYes then
773 <    DatabaseData.RevokeAll;
773 >    DBDataModule.RevokeAll;
774   end;
775  
776   procedure TMainForm.RevokeAllUpdate(Sender: TObject);
# Line 818 | Line 845 | end;
845  
846   procedure TMainForm.UserManagerTabShow(Sender: TObject);
847   begin
848 <  if not Visible or not IBDatabaseInfo.Database.Connected or DatabaseData.EmbeddedMode then Exit;
848 >  if not Visible or not IBDatabaseInfo.Database.Connected or DBDataModule.EmbeddedMode then Exit;
849    UserListSource.DataSet.Active := true;
850   end;
851  
# Line 833 | Line 860 | end;
860   procedure TMainForm.OpenDatabaseExecute(Sender: TObject);
861   begin
862    PageControl1.ActivePage := Properties;
863 <  DatabaseData.Connect;
863 >  DBDataModule.Connect;
864    if not IBDatabaseInfo.Database.Connected then Close;
865   end;
866  
867   procedure TMainForm.PropertiesShow(Sender: TObject);
868   begin
869 <  if Visible and IBDatabaseInfo.Database.Connected then
869 >  if Visible and (IBDatabaseInfo.Database <> nil) and IBDatabaseInfo.Database.Connected then
870      LoadData;
871   end;
872  
# Line 847 | Line 874 | procedure TMainForm.RemoveShadowExecute(
874   var ShadowSet: integer;
875   begin
876    ShadowSet := ShadowSource.DataSet.FieldByName('RDB$Shadow_Number').AsInteger;
877 <  DatabaseData.RemoveShadowSet(ShadowSet);
877 >  DBDataModule.RemoveShadowSet(ShadowSet);
878   end;
879  
880   procedure TMainForm.RemoveShadowUpdate(Sender: TObject);
# Line 857 | Line 884 | end;
884  
885   procedure TMainForm.RestoreExecute(Sender: TObject);
886   begin
887 <  DatabaseData.RestoreDatabase;
887 >  DBDataModule.RestoreDatabase;
888   end;
889  
890   procedure TMainForm.RollbackAllExecute(Sender: TObject);
891   begin
892 <  DatabaseData.LimboResolution(RollbackGlobal,LimboReport.Lines);
892 >  DBDataModule.LimboResolution(RollbackGlobal,LimboReport.Lines);
893   end;
894  
895   procedure TMainForm.RunRepairExecute(Sender: TObject);
# Line 874 | Line 901 | begin
901      Options := [SweepDB];
902    1: {Online Validation }
903      begin
904 <      DatabaseData.OnlineValidation(ValidationReport.Lines,SelectedTablesOnly.Checked);
904 >      DBDataModule.OnlineValidation(ValidationReport.Lines,SelectedTablesOnly.Checked);
905        Exit;
906      end;
907    2: {Full Validation}
# Line 900 | Line 927 | begin
927      Options := [KillShadows];
928    end;
929  
930 <  DatabaseData.DatabaseRepair(Options,ValidationReport.Lines);
930 >  DBDataModule.DatabaseRepair(Options,ValidationReport.Lines);
931    if (SelectRepairAction.ItemIndex = 2) and (ValidateDB in Options) then
932      ValidateOptions.ActivePage := RepairOptionsTab
933    else
# Line 959 | Line 986 | end;
986  
987   procedure TMainForm.ServerTabShow(Sender: TObject);
988   begin
989 <  if not Visible or not IBDatabaseInfo.Database.Connected or FServerError then Exit;
989 >  if not Visible or FServerError then Exit;
990    try
991 <    DatabaseData.LoadServerProperties(ServerPropMemo.Lines);
992 <    DatabaseData.LoadServerLog(ServerLog.Lines);
991 >    LoadServerData;
992 >    DBDataModule.LoadServerLog(ServerLog.Lines);
993    except
994     FServerError := true;
968   ServerPropMemo.Lines.Clear;
995     ServerLog.Lines.Clear;
996     raise;
997    end;
# Line 987 | Line 1013 | procedure TMainForm.StatsOptionsCloseUp(
1013   begin
1014    StatsMemo.Lines.Clear;
1015    FLastStatsIndex := StatsOptions.ItemIndex;
1016 <  DatabaseData.LoadDatabaseStatistics(StatsOptions.ItemIndex,StatsMemo.Lines);
1016 >  DBDataModule.LoadDatabaseStatistics(StatsOptions.ItemIndex,StatsMemo.Lines);
1017   end;
1018  
1019   procedure TMainForm.SweepIntervalEditingDone(Sender: TObject);
1020   begin
1021    if FLoading then Exit;
1022 <  DatabaseData.SweepInterval := StrtoInt(SweepInterval.Text);
1022 >  DBDataModule.SweepInterval := StrtoInt(SweepInterval.Text);
1023   end;
1024  
1025   procedure TMainForm.SyncWritesChange(Sender: TObject);
1026   begin
1027    if FLoading then Exit;
1028 <  DatabaseData.ForcedWrites := SyncWrites.Checked;
1028 >  DBDataModule.ForcedWrites := SyncWrites.Checked;
1029   end;
1030  
1031   procedure TMainForm.ToggleAutoRefreshExecute(Sender: TObject);
# Line 1013 | Line 1039 | begin
1039    (Sender as TAction).Checked := AttmtTimer.Enabled;
1040   end;
1041  
1042 + procedure TMainForm.DoDBOpen(Data: PtrInt);
1043 + begin
1044 +  ConnectToDatabase;
1045 + end;
1046 +
1047   procedure TMainForm.HandleDBConnect(Sender: TObject);
1048   begin
1049    ConfigureForServerVersion;
# Line 1024 | Line 1055 | end;
1055  
1056   procedure TMainForm.HandleLoadData(Sender: TObject);
1057   begin
1058 <  if DatabaseData.EmbeddedMode then
1058 >  if DBDataModule.EmbeddedMode then
1059      StatusBar1.SimpleText := Format('Database: %s - Logged in as user %s in embedded mode',
1060 <       [DatabaseData.IBDatabase1.DatabaseName,DatabaseData.IBDatabase1.Params.Values['user_name']
1060 >       [DBDataModule.IBDatabase1.DatabaseName,DBDataModule.IBDatabase1.Params.Values['user_name']
1061          ])
1062    else
1063 <  if DatabaseData.DBUserName = 'SYSDBA' then
1063 >  if DBDataModule.DBUserName = 'SYSDBA' then
1064    StatusBar1.SimpleText := Format('Database: %s - Logged in as user %s by %s, using %s security database.',
1065 <       [DatabaseData.IBDatabase1.DatabaseName,DatabaseData.DBUserName,
1066 <        DatabaseData.AuthMethod, DatabaseData.SecurityDatabase])
1065 >       [DBDataModule.IBDatabase1.DatabaseName,DBDataModule.DBUserName,
1066 >        DBDataModule.AuthMethod, DBDataModule.SecurityDatabase])
1067    else
1068      StatusBar1.SimpleText := Format('Database: %s - Logged in as user %s by %s, using %s security database. Role = %s',
1069 <         [DatabaseData.IBDatabase1.DatabaseName,DatabaseData.DBUserName,
1070 <          DatabaseData.AuthMethod, DatabaseData.SecurityDatabase,DatabaseData.RoleName]);
1069 >         [DBDataModule.IBDatabase1.DatabaseName,DBDataModule.DBUserName,
1070 >          DBDataModule.AuthMethod, DBDataModule.SecurityDatabase,DBDataModule.RoleName]);
1071    if assigned(PageControl1.ActivePage.OnShow) then
1072      PageControl1.ActivePage.OnShow(nil);
1073 <  ClientLibrary.Caption := 'Firebird Client Library: ' + DatabaseData.IBDatabase1.FirebirdAPI.GetFBLibrary.GetLibraryFilePath +
1074 <  ' (API Version = ' + DatabaseData.IBDatabase1.FirebirdAPI.GetImplementationVersion + ')';
1073 >  ClientLibrary.Caption := 'Firebird Client Library: ' + DBDataModule.IBDatabase1.FirebirdAPI.GetFBLibrary.GetLibraryFilePath +
1074 >  ' (API Version = ' + DBDataModule.IBDatabase1.FirebirdAPI.GetImplementationVersion + ')';
1075   end;
1076  
1077   procedure TMainForm.LoadData;
# Line 1048 | Line 1079 | begin
1079    if FLoading then Exit;
1080    FLoading := true;
1081    try
1082 <    DatabaseAliasName.Text := DatabaseData.DatabaseName;
1082 >    DatabaseAliasName.Text := DBDataModule.DatabaseName;
1083      Edit1.Text := IBDatabaseInfo.DBSiteName;
1084      ODSVersionString.Text :=  Format('%d.%d',[IBDatabaseInfo.ODSMajorVersion,IBDatabaseInfo.ODSMinorVersion]);
1085      ServerVersionNo.Text :=  IBDatabaseInfo.Version;
1086 <    DBSQLDialect.Text :=  IntToStr(DatabaseData.DBSQLDialect);
1087 <    ConnectString.Text := DatabaseData.IBDatabase1.DatabaseName;
1086 >    DBSQLDialect.Text :=  IntToStr(DBDataModule.DBSQLDialect);
1087 >    ConnectString.Text := DBDataModule.IBDatabase1.DatabaseName;
1088      Edit10.Text := IntToStr(IBDatabaseInfo.CurrentMemory);
1089      Edit11.Text := IntToStr(IBDatabaseInfo.MaxMemory);
1090 <    PageBuffers.Text := IntToStr(DatabaseData.PageBuffers);
1090 >    PageBuffers.Text := IntToStr(DBDataModule.PageBuffers);
1091      AllocatedPages.Text := IntToStr(IBDatabaseInfo.Allocation);
1092 <    DBIsReadOnly.Checked := DatabaseData.DBReadOnly;
1093 <    SyncWrites.Checked := DatabaseData.ForcedWrites;
1092 >    DBIsReadOnly.Checked := DBDataModule.DBReadOnly;
1093 >    SyncWrites.Checked := DBDataModule.ForcedWrites;
1094      SweepInterval.Text := IntToStr(IBDatabaseInfo.SweepInterval);
1095 <    NoReserve.Checked := DatabaseData.NoReserve;
1096 <    LingerDelay.Text := DatabaseData.LingerDelay;
1097 <    SecDatabase.Text := DatabaseData.SecurityDatabase;
1098 <    DBOwner.Text := DatabaseData.DBOwner;
1099 <    DatabaseOnline.Checked := DatabaseData.IsDatabaseOnline;
1100 <    IsShadowChk.Checked := DatabaseData.IsShadowDatabase;
1095 >    NoReserve.Checked := DBDataModule.NoReserve;
1096 >    LingerDelay.Text := DBDataModule.LingerDelay;
1097 >    SecDatabase.Text := DBDataModule.SecurityDatabase;
1098 >    DBOwner.Text := DBDataModule.DBOwner;
1099 >    DatabaseOnline.Checked := DBDataModule.IsDatabaseOnline;
1100 >    IsShadowChk.Checked := DBDataModule.IsShadowDatabase;
1101      if IBDatabaseInfo.ODSMajorVersion >= 12 then
1102      begin
1103        PagesUsed.Text := IntToStr(IBDatabaseInfo.PagesUsed);
1104        PagesAvail.Text := IntToStr(IBDatabaseInfo.PagesFree);
1105 <      AutoAdmin.Checked := not DatabaseData.EmbeddedMode and DatabaseData.AutoAdmin;
1105 >      AutoAdmin.Checked := not DBDataModule.EmbeddedMode and DBDataModule.AutoAdmin;
1106      end
1107      else
1108      begin
# Line 1079 | Line 1110 | begin
1110        PagesAvail.Text := 'n/a';
1111        AutoAdmin.Checked :=  false;
1112      end;
1113 <    DatabaseData.IBDatabase1.Attachment.getFBVersion(ClientServerVersion.Lines);
1114 <    DBComments.Lines.Text := DatabaseData.Description;
1113 >    DBDataModule.IBDatabase1.Attachment.getFBVersion(ClientServerVersion.Lines);
1114 >    DBComments.Lines.Text := DBDataModule.Description;
1115    finally
1116      FLoading := false;
1117    end;
1118   end;
1119  
1120 + procedure TMainForm.LoadServerData;
1121 + var i: integer;
1122 + begin
1123 +  with DBDataModule.IBServerProperties1 do
1124 +  begin
1125 +    Edit3.Text := VersionInfo.ServerVersion;
1126 +    Edit2.Text := IntToStr(VersionInfo.ServiceVersion);
1127 +    Edit4.Text := VersionInfo.ServerImplementation;
1128 +    OpenDatabasesList.Clear;
1129 +    for i := 0 to DatabaseInfo.NoOfDatabases - 1 do
1130 +      OpenDatabasesList.Lines.Add(DatabaseInfo.DbName[i]);
1131 +    ConfigDataGrid.Visible := DBDataModule.LoadConfigData(ConfigParams.ConfigFileData);
1132 +    ConfigDataLabel.Visible := ConfigDataGrid.Visible;
1133 +    if ConfigDataGrid.Visible then
1134 +    begin
1135 +      OpenDatabasesList.Height := ConfigDataLabel.Top - OpenDatabasesList.Top - 6;
1136 +      OpenDatabasesList.Anchors := OpenDatabasesList.Anchors - [akBottom];
1137 +    end
1138 +    else
1139 +    begin
1140 +      OpenDatabasesList.Height := ConfigDataGrid.Top - OpenDatabasesList.Top + ConfigDataGrid.Height;
1141 +      OpenDatabasesList.Anchors := OpenDatabasesList.Anchors + [akBottom];
1142 +    end;
1143 +    Edit5.Text := ConfigParams.BaseLocation;
1144 +    Edit6.Text := ConfigParams.LockFileLocation;
1145 +    Edit7.Text :=  ConfigParams.SecurityDatabaseLocation;
1146 +    Edit9.Text :=  ConfigParams.MessageFileLocation;
1147 +    Edit8.Text := ServicesConnection.ServerName;
1148 +    Edit12.Text := IntToStr(DatabaseInfo.NoOfAttachments);
1149 +  end;
1150 + end;
1151 +
1152   procedure TMainForm.DoExtract(Data: PtrInt);
1153   begin
1154    Screen.Cursor := crHourGlass;
# Line 1105 | Line 1168 | procedure TMainForm.ConfigureForServerVe
1168   var i: integer;
1169   begin
1170    if (IBDatabaseInfo.ODSMajorVersion >= 12) and
1171 <     ((DatabaseData.DBUserName = 'SYSDBA') or (DatabaseData.RoleName = 'RDB$ADMIN') or
1172 <            not DatabaseData.HasUserAdminPrivilege) then
1171 >     ((DBDataModule.ServiceUserName = 'SYSDBA') or (DBDataModule.RoleName = 'RDB$ADMIN') or
1172 >            not DBDataModule.HasUserAdminPrivilege) then
1173    begin
1174      for i in [9,10] do
1175        UserManagerGrid.Columns[i].Visible := false;
1176        for i in [4,6,7,8] do
1177          UserManagerGrid.Columns[i].Visible := true ;
1178 <    UserListSource.DataSet := DatabaseData.UserList;
1178 >    UserListSource.DataSet := DBDataModule.UserList;
1179      TagsHeader.Visible := true;
1180      TagsGrid.Visible := true;
1181    end
# Line 1122 | Line 1185 | begin
1185        UserManagerGrid.Columns[i].Visible := false;
1186        for i in [9,10] do
1187          UserManagerGrid.Columns[i].Visible := true;
1188 <      UserListSource.DataSet := DatabaseData.LegacyUserList;
1188 >      UserListSource.DataSet := DBDataModule.LegacyUserList;
1189        TagsHeader.Visible := false;
1190        TagsGrid.Visible := false;
1191    end;
# Line 1141 | Line 1204 | begin
1204      DBCharacterSet.Visible := false;
1205      DBCharSetRO.Visible := true;
1206    end;
1207 <  MappingsTab.TabVisible := not DatabaseData.EmbeddedMode and
1207 >  MappingsTab.TabVisible := not DBDataModule.EmbeddedMode and
1208    ((IBDatabaseInfo.ODSMajorVersion > 11) or
1209      ((IBDatabaseInfo.ODSMajorVersion = 11) and (IBDatabaseInfo.ODSMinorVersion > 0)));
1210 <  UserManagerTab.TabVisible := not DatabaseData.EmbeddedMode;
1211 <  AccessRightsTab.TabVisible := not DatabaseData.EmbeddedMode;
1212 <  AutoAdmin.Enabled := not DatabaseData.EmbeddedMode;
1210 >  UserManagerTab.TabVisible := not DBDataModule.EmbeddedMode;
1211 >  AccessRightsTab.TabVisible := not DBDataModule.EmbeddedMode;
1212 >  AutoAdmin.Enabled := not DBDataModule.EmbeddedMode;
1213 > end;
1214 >
1215 > procedure TMainForm.ConnectToDatabase;
1216 > begin
1217 >  if not DBDataModule.Connect then Close;
1218 >  PageControl1.Visible := true;
1219   end;
1220  
1221   procedure TMainForm.ConfigureOnlineValidation;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines