--- ibx/trunk/examples/DBAdmin/MainFormUnit.pas 2018/04/16 09:24:55 208 +++ ibx/trunk/examples/DBAdmin/MainFormUnit.pas 2018/03/14 12:48:51 209 @@ -25,7 +25,7 @@ uses Classes, SysUtils, FileUtil, SynEdit, SynHighlighterSQL, SynGutterCodeFolding, Forms, Controls, Graphics, Dialogs, Menus, ComCtrls, ActnList, StdCtrls, DbCtrls, ExtCtrls, Buttons, db, IBLookupComboEditBox, - IBDynamicGrid, IBTreeView, IBDatabaseInfo, IBServices, IBExtract; + IBDynamicGrid, IBTreeView, IBDatabaseInfo, IBXServices, IBExtract, IB; type @@ -34,6 +34,7 @@ type TMainForm = class(TForm) AccessRightsPopup: TPopupMenu; AccessRightsSource: TDataSource; + AutoAdmin: TCheckBox; DatabaseAliasName: TEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; @@ -132,7 +133,6 @@ type AddFileBtn: TButton; AddShadowBtn: TButton; AllocatedPages: TEdit; - AutoAdmin: TCheckBox; Button1: TButton; DatabaseOnline: TCheckBox; DBCharacterSet: TIBLookupComboEditBox; @@ -295,9 +295,11 @@ type procedure DropDatabaseExecute(Sender: TObject); procedure DropDatabaseUpdate(Sender: TObject); procedure AccessRightsTreeViewSelectionChanged(Sender: TObject); + procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure MappingsTabHide(Sender: TObject); procedure MappingsTabShow(Sender: TObject); procedure PageBuffersEditingDone(Sender: TObject); + procedure QuitExecute(Sender: TObject); procedure RepairTabHide(Sender: TObject); procedure RepairTabShow(Sender: TObject); procedure RevokeAllExecute(Sender: TObject); @@ -358,12 +360,15 @@ implementation {$R *.lfm} uses DataModule, ShutdownRegDlgUnit, AddSecondaryFileDlgUnit, NewUserDlgUnit, - ChgPasswordDlgUnit; + ChgPasswordDlgUnit, FBMessages; { TMainForm } procedure TMainForm.FormShow(Sender: TObject); begin + {Set IB Exceptions to only show text message - omit SQLCode and Engine Code} + FirebirdAPI.GetStatus.SetIBDataBaseErrorMessages([ShowIBMessage]); + Application.ExceptionDialog := aedOkMessageBox; PageControl1.ActivePage := Properties; DatabaseData.AfterDBConnect := @HandleDBConnect; DatabaseData.AfterDataReload := @HandleLoadData; @@ -505,8 +510,8 @@ begin with UserListSource.DataSet do begin Append; - FieldByName('UserName').AsString := AnsiUpperCase(NewUserName); - FieldByName('USERPASSWORD').AsString := NewPassword; + FieldByName('SEC$USER_NAME').AsString := AnsiUpperCase(NewUserName); + FieldByName('SEC$PASSWORD').AsString := NewPassword; end; end; @@ -552,7 +557,7 @@ begin with UserListSource.DataSet do begin Edit; - FieldByName('USERPASSWORD').AsString := NewPassword; + FieldByName('SEC$PASSWORD').AsString := NewPassword; try Post except @@ -584,7 +589,7 @@ begin end; procedure TMainForm.DatabaseOnlineChange(Sender: TObject); -var ShutDownMode: TShutDownMode; +var ShutDownMode: TDBShutDownMode; Delay: integer; begin if FLoading then Exit; @@ -625,7 +630,7 @@ end; procedure TMainForm.DeleteUserExecute(Sender: TObject); begin - if MessageDlg('Do you really want to delete user ' + Trim(UserListSource.DataSet.FieldByName('UserName').AsString), + if MessageDlg('Do you really want to delete user ' + Trim(UserListSource.DataSet.FieldByName('SEC$USER_NAME').AsString), mtConfirmation,[mbYes,mbNo],0) = mrYes then UserListSource.DataSet.Delete; end; @@ -679,6 +684,11 @@ begin end; end; +procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction); +begin + DatabaseData.Disconnect; +end; + procedure TMainForm.MappingsTabHide(Sender: TObject); begin AuthMapSource.DataSet.Active := false; @@ -687,7 +697,7 @@ end; procedure TMainForm.MappingsTabShow(Sender: TObject); begin if not Visible or not IBDatabaseInfo.Database.Connected then Exit; - AuthMapSource.DataSet.Active := true; + AuthMapSource.DataSet.Active := IBDatabaseInfo.ODSMajorVersion > 11; end; procedure TMainForm.PageBuffersEditingDone(Sender: TObject); @@ -695,6 +705,11 @@ begin DatabaseData.PageBuffers := StrToInt(PageBuffers.Text); end; +procedure TMainForm.QuitExecute(Sender: TObject); +begin + Close; +end; + procedure TMainForm.RepairTabHide(Sender: TObject); begin DBTablesSource.DataSet.Active := false; @@ -1032,7 +1047,7 @@ begin begin PagesUsed.Text := IntToStr(IBDatabaseInfo.PagesUsed); PagesAvail.Text := IntToStr(IBDatabaseInfo.PagesFree); - AutoAdmin.Checked := DatabaseData.AutoAdmin; + AutoAdmin.Checked := not DatabaseData.EmbeddedMode and DatabaseData.AutoAdmin; end else begin @@ -1088,7 +1103,6 @@ begin if IBDatabaseInfo.ODSMajorVersion >= 12 then begin - MappingsTab.TabVisible := true; AttmtGrid.Columns[2].Visible := true; AttmntODS12Panel.Visible := true; DBCharacterSet.Visible := true; @@ -1096,14 +1110,17 @@ begin end else begin - MappingsTab.TabVisible := false; AttmtGrid.Columns[2].Visible := false; AttmntODS12Panel.Visible := false; DBCharacterSet.Visible := false; DBCharSetRO.Visible := true; end; + MappingsTab.TabVisible := not DatabaseData.EmbeddedMode and + ((IBDatabaseInfo.ODSMajorVersion > 11) or + ((IBDatabaseInfo.ODSMajorVersion = 11) and (IBDatabaseInfo.ODSMinorVersion > 0))); UserManagerTab.TabVisible := not DatabaseData.EmbeddedMode; AccessRightsTab.TabVisible := not DatabaseData.EmbeddedMode; + AutoAdmin.Enabled := not DatabaseData.EmbeddedMode; end; procedure TMainForm.ConfigureOnlineValidation;