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