Joel, Jan,
Here is my macro --
I will add your Chkfile to my prog, you might consider adding to yours where
I check to make sure there is available space to do the reload first.
I also set autosync on, and do an rbsync if needed after the reload..
I also output the autochk to a text file, in case of an error, the customer
can email the file to me so I can fix it.
I have remote connection to all my customers.
cls
pause for 2 using 'reorg.mac' option message_font_size 12
|message_font_color maroon
set var vresp = ' '
dialog 'Ready to Check Database, get everyone off - Continue? ' vresp vkey
no
if vkey = '[Esc]' then ; goto aldun ; endif
if vresp <> 'Yes' then ; goto aldun ; endif
SET ERROR VAR E1
cls
WRITE 'Checking database for errors...' at 8 21
conn aisi50
set autosync on
set mess on
set err mess on
cls
set color white on blue
out autochk.dta with screen
AUTOCHK full
out screen
IF E1 > 40 THEN
cls
WRITE 'AUTOCHK has found errors in the database!' at 10 21
write 'E-Mail AUTOCHK.DTA to Programmer' at 12 21
BEEP
pause 2 using 'Call Programmer'
goto aldun
ENDIF
If E1 > 0 and E1 < 50 THEN
cls
WRITE 'AUTOCHK will not run - User Abort or Out of Memory' at 10 21
write 'E-Mail AUTOCHK.DTA to Programmer' at 12 21
BEEP
pause 2
goto aldun
ENDIF
IF E1 = 0 THEN
cls
WRITE 'AUTOCHK successful - No errors found' at 3 26
ENDIF
set var vresp = ' '
dialog 'Ready to Reload Database, get everyone off - Continue? ' vresp vkey
no
if vkey = '[Esc]' then ; goto aldun ; endif
if vresp <> 'Yes' then ; goto aldun ; endif
del old.rb?
disconnect
set multi off
connect aisi50
set var vDBsize double = (istat('dbsize'))
set var vSpace double = (istat('diskspace'))
set var isitok = (.vSpace - (.vDBsize * 2))
if vSpace > .isitok then
disc
ren aisi50.rb1 old.rb1
ren aisi50.rb2 old.rb2
ren aisi50.rb3 old.rb3
ren aisi50.rb4 old.rb4
conn old
out reload.dta with screen
reload aisi50
out screen
disc
set err var e1
conn aisi50
if e1 = 7 then
rbsync aisi50 execute
endif
cls
pause 2 using 'Reload Complete'
else
pause 2 using 'Not Enough disk space to reload database'
endif
disc
set multi on
Label aldun
clear all var
cd capacity
return
exit
----- Original Message -----
From: "Jan Johansen" <[EMAIL PROTECTED]>
To: "RBG7-L Mailing List" <[email protected]>
Sent: Wednesday, July 27, 2005 12:35 PM
Subject: [RBG7-L] - Re: Reload Database
Joel,
This is something I use. Does not do a zip but you can probably insert
that
Code follows
*(BackUp.Rmd)
*(Written By: Jan D. Johansen)
*(Copyright (c) Dane Data Systems, Inc.)
*(Original by Friday 04/29/2005)
*(Updated Monday 05/30/2005)
--Reload DataBase EquipMgr
RHIDE
CLEAR VAR iv%,vCaption,vTotConnections,vYesNo,vPauseMsg,vCurrentDBName, +
vBackupFile1,vBackupFile2,vBackupFile3,vBackupFile4,vDialogMsg,vChkDir
SET VAR vCaption TEXT = ' DB Maintenance - Reload Database'
SET VAR vTotConnections INTEGER = 0
SET VAR vYesNo TEXT = 'No'
IF (CVAL('DATABASE')) IS NULL THEN
PAUSE 2 USING 'No Database Connected to RELOAD!' +
CAPTION .vCaption ICON STOP +
BUTTON 'Click here to ontinue ...' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_NAME Verdana +
|MESSAGE_FONT_COLOR RED +
|MESSAGE_FONT_SIZE 10 +
|MESSAGE_FONT_BOLD ON +
|MESSAGE_FONT_ITALIC OFF +
|MESSAGE_FONT_STRIKEOUT OFF +
|BUTTON_COLOR WHITE +
|BUTTON_FONT_COLOR GREEN
GOTO Done
ENDIF
-- Check connectons
SET VAR vTotConnections = (INT(CVAL('Connections')))
IF vTotConnections <> 1 THEN
PAUSE 2 USING 'Someone else is still connected to the database!' +
CAPTION .vCaption ICON STOP +
BUTTON 'Click here to ontinue ...' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_NAME Verdana +
|MESSAGE_FONT_COLOR RED +
|MESSAGE_FONT_SIZE 10 +
|MESSAGE_FONT_BOLD ON +
|MESSAGE_FONT_ITALIC OFF +
|MESSAGE_FONT_STRIKEOUT OFF +
|BUTTON_COLOR WHITE +
|BUTTON_FONT_COLOR GREEN
GOTO Done
ENDIF
CLS
SET VAR vYesNo TEXT = NULL
SET VAR vEndKey TEXT = NULL
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))&'WARNING'+(CHAR(013))+ +
(CHAR(009))&'This Process will Exit you out'+(CHAR(013))+ +
(CHAR(009))&'create a backup and reload all'+(CHAR(013))+ +
(CHAR(009))&'Tables/Reports/Labels/Data and'+(CHAR(013))+ +
(CHAR(009))&'rebuild all indexes.'+(CHAR(013))+ +
(CHAR(009))&' '+(CHAR(013))+ +
(CHAR(009))&'Do you wish to Continue?'+(CHAR(013)))
DIALOG .vMsg vYesNo vEndKey YES +
CAPTION ' ReLoading Database ...' +
ICON APP +
OPTION TITLE_FONT_COLOR BLACK +
|MESSAGE_FONT_NAME Arial +
|MESSAGE_FONT_SIZE 10 +
|TITLE_BACK_COLOR WHITE +
|WINDOW_BACK_COLOR WHITE +
|BUTTON_YES_CAPTION &Start +
|BUTTON_NO_CAPTION &Cancel +
|BUTTON_YES_COLOR GREEN +
|BUTTON_NO_COLOR RED +
|BUTTON_YES_FONT_COLOR WHITE +
|BUTTON_NO_FONT_COLOR WHITE
IF vYesNo = 'No' THEN
RETURN
ENDIF
--Setting Up directories and database
SET VAR vChkDir = (CHKFILE('BACKUP'))
IF vChkDir <> 1 THEN
MD BACKUP
ENDIF
-- Get the current database name
SET VAR vCurrentDBName = (CVAL('Database'))
SET VAR vBackupFile1 = (.vCurrentDBName+'.RB1')
SET VAR vBackupFile2 = (.vCurrentDBName+'.RB2')
SET VAR vBackupFile3 = (.vCurrentDBName+'.RB3')
SET VAR vBackupFile4 = (.vCurrentDBName+'.RB4')
DISCONNECT
SET MULTI OFF
--Setting up messages and pause
SET VAR vB1 = (CHAR(003))
SET VAR vBar = (CHAR(003))
SET VAR vB5 = (.vB1 + .vB1 + .vB1 + .vB1 + .vB1)
SET VAR vB10 = (.vB5 + .vB5)
SET VAR vB25 = (.vB10 + .vB10 + .vB5)
SET VAR vBarSize INTEGER = 0
SET VAR vProcessing = 'AutoChecking DataBase'
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+ (CHAR(013)) )
PAUSE 3 USING .vMsg +
CAPTION 'Processing .... ' +
ICON APP +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON
--AUTOCHECK DATABASE EquipMgr
SET ERROR VAR E1
AUTOCHK &vCurrentDBName
IF E1 > 40 THEN
PAUSE 1 USING 'AUTOCHK has found errors in the database!'
GOTO Done
ENDIF
IF E1 > 0 and E1 < 50 THEN
PAUSE 1 USING 'AUTOCHK will not run - User Abort or Out of Memory'
GOTO Done
ENDIF
IF E1 = 0 THEN
GOTO Next
ENDIF
LABEL Next
SET VAR vProcessing = 'Deleting Previous Backups'
SET VAR vBarSize = 10
SET VAR vBar = .vB10
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+ (CTXT(.vBarSize))+' %'
+(CHAR(013))+ +
.vBar + (CHAR(009))+ (CHAR(013)))
PAUSE 4 USING .vMsg +
CAPTION 'Step 1 of 5 Completed .... ' +
ICON APP +
BUTTON 'OK' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON
--Delete Old Backups for DataBase EquipMgr
SET ERROR MESSAGE 2077 OFF
DEL BACKUP
SET ERROR MESSAGE 2077 ON
SET VAR vProcessing = 'Copying Database to BACK2'
SET VAR vBarSize = 15
SET VAR vBar = .vBar + .vB5
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+ (CTXT(.vBarSize))+' %'
+(CHAR(013))+ +
.vBar + (CHAR(009))+ (CHAR(013)))
PAUSE 4 USING .vMsg +
CAPTION 'Step 2 of 5 Completed .... ' +
ICON APP +
BUTTON 'OK' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON
--Copying Database to BACK2 for DataBase EquipMgr
COPY &vBackupFile1 BACKUP
COPY &vBackupFile2 BACKUP
COPY &vBackupFile3 BACKUP
COPY &vBackupFile4 BACKUP
SET VAR vProcessing = 'Reloading Database'
SET VAR vBarSize = 40
SET VAR vBar = .vBar + .vB25
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+ (CTXT(.vBarSize))+' %'
+(CHAR(013))+ +
.vBar + (CHAR(009))+ (CHAR(013)))
PAUSE 4 USING .vMsg +
CAPTION 'Step 3 of 5 Completed ....' +
ICON APP +
BUTTON 'OK' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON
--Reloading Database for DataBase EquipMgr
SET MULTI OFF
CONNECT &vCurrentDBName
SET ERROR MESSAGE 2077 OFF
DELETE ABC.RB?
SET ERROR MESSAGE 2077 ON
RELOAD ABC
DISCONNECT
SET VAR vProcessing = 'Restoring Database'
SET VAR vBarSize = 75
SET VAR vBar = .vBar + .vB25 + .vB10
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+ (CTXT(.vBarSize))+' %'
+(CHAR(013))+ +
.vBar + (CHAR(009))+ (CHAR(013)))
PAUSE 4 USING .vMsg +
CAPTION 'Step 4 of 5 Completed .... ' +
ICON APP +
BUTTON 'OK' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON
--Copying Reloaded Database for DataBase EquipMgr
ERASE &vBackupFile1
ERASE &vBackupFile2
ERASE &vBackupFile3
ERASE &vBackupFile4
RENAME ABC.RB1 &vBackupFile1
RENAME ABC.RB2 &vBackupFile2
RENAME ABC.RB3 &vBackupFile3
RENAME ABC.RB4 &vBackupFile4
SET VAR vProcessing = 'Process Completed'
SET VAR vBarSize = 100
SET VAR vBar = .vBar + .vB25
SET VAR vMsg = +
((CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+(CH
AR(009))+ +
(CHAR(009))+(CHAR(009))+(CHAR(013))+ +
(CHAR(009))+ .vProcessing + (CHAR(009))+(CHAR(013))+ +
(CHAR(013))+ +
(CHAR(009))+(CHAR(009))+(CHAR(009))+(CHAR(009))+ (CTXT(.vBarSize))+' %'
+(CHAR(013))+ +
.vBar + (CHAR(009))+ (CHAR(013)))
--Process Completed
PAUSE 1 USING .vMsg +
CAPTION 'Step 5 of 5 Completed .... ' +
ICON APP +
BUTTON 'OK' +
OPTION BACK_COLOR WHITE +
|MESSAGE_COLOR WHITE +
|MESSAGE_FONT_COLOR GREEN +
|MESSAGE_FONT_BOLD ON +
|BUTTON_COLOR WHITE +
|BUTTON_FONT_COLOR GREEN
LABEL Done
CLEAR VAR iv%,vCaption,vTotConnections,vYesNo,vPauseMsg,vCurrentDBName, +
vBackupFile1,vBackupFile2,vBackupFile3,vBackupFile4,vDialogMsg,vChkDir
CLS
EXIT
RETURN
Code Ends
Have fun,
Jan