And, Bernie (I'm also going to add some of the other code posted here to my
own routine <g>), perform the steps only if the user is the only one
connected...
SET VAR vconn TEXT = NULL
SET VAR vconn = (CVAL('connections'))
IF vconn = 1 THEN
DISCONNECT
CONNECT DATABASE IDENTIFIED BY NONE
-----
ALL YOUR CODE HERE...
-----
ELSE
SET VAR vmsg = 'More than one user is connected!'
CLS
PAUSE 2 USING .vmsg CAPTION 'Backup Can''t Proceed' ICON INFO +
BUTTON 'Try Later...' OPTION THEMENAME razzmatazz
ENDIF
RETURN
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Bernard Lis
> Sent: Sunday, July 31, 2005 4:00 PM
> To: RBG7-L Mailing List
> Subject: [RBG7-L] - Re: Reload Database
>
> 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
> >
> >