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



Reply via email to