At 02:47 PM 8/21/2001 -0400, Phil Nolette wrote:

>... How do you put the database in a single user mode

>and then after I do the pack in place, set it back to

>multi-user.

Phil,

In a Multi-User environment, if you are using The 
Glorious R:BASE 2000 (ver 6.5) and higher, then, 
you can use the cool (CVAL('Connections')) function 
to automate entire PACK or RELOAD process.

Here is an example of using PACK KEYS command in a 
Multi-User environment

-- PackKeys.RMD 
-- Automating Pack Key Process in a MU environment

SET RBGSIZE CENTER CENTER 800 600
CLE ALL VAR
SET CAPTION ' '
SET VAR vCaption TEXT = 'Pack Keys'

CLS
PAUSE 2 USING +
 'Make sure no one else is connected to the database!'
+
 CAPTION .vCaption AT CENT CENT

CLS
DIAL 'Would You Like to Continue Pack Indexes?' +
 VYesNo VEndKey YES CAPTION 'Pack Keys' AT 12 20

IF VYesNo = 'No' THEN
   GOTO Done
ENDIF

PAUSE 3 USING 'Checking ...' AT CENTER CENTER

SET VAR vCount INTEGER = (INT(CVAL('Connections')))
IF vCount <> 1 THEN
   CLS
   PAUSE 2 USING +
   'Someone else is still connected to the database!'
+
    CAPTION .vCaption AT CENT CENTER
    GOTO Done
ENDIF

CLS
DISC
SET MULTI OFF
CONN DBName
CLS
PAUSE 3 USING +
'Making a Backup Copy Before Packing the Indexes ...'
+
CAPTION .vCaption AT CENT CENT

SET MESSAGES OFF
SET ERR MESS OFF
DISC
-- Make sure that BACKUP directory exists
COPY DBName.RB? BACKUP

CONN DBName

CLS
PAUSE 3 USING 'Now Packing Indexes ...' +
CAPTION .vCaption AT CENT CENT

PACK KEYS

DISC

SET MULTI ON
CONN DBName
SET MESSAGES ON
SET ERR MESS ON

CLS
PAUSE 2 USING 'Packing Indexes Process Completed!' +
CAPTION .vCaption AT CENT CENT 

LABEL DONE
CLS
CLEAR ALL VAR
SET VAR vLastPick INTEGER = 4
QUIT TO SubI.VAR


__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/

Reply via email to