Karen,
A long time ago, I cobbled up this code to check and fix the settings after
connecting to a DB.
It was done for exatly the reason you are describing.
Our users were getting tired of waiting for the database to connect, especially
as they open several sessions on each computer.
It does NOTHING TIME CONSUMING if all settings are correct.
If it does need to fix a setting it changes the user to the OWNER so the fixed
setting will STICK.
It should be easy to cobble up one that matches your preferences.
All my modules to connect to databases call this module.
I would think this would be something that should be stored in an archive
somewhere so others can learn from it.
This could be put into a codelocked module for security purposes.
Dennis McGrath
--FixSets.Cmd
--Fast Settings Checker/Fixer
SET VAR vConnUseFlag INTEGER = 0
SET VAR vTempConnUser TEXT = (CVAL('USER'))
SET VAR vOwnerSet = 'SET USER OwnerName' -- change to reflect correct owner name
-- SET VAR vOwnerSet = ' ' -- uncomment this line if no owner
SET VAR vSetting = 'Quotes'
SET VAR vTesting = (CHAR(39))
SET VAR vTmp = (CVAL(.vSetting))
IF vTmp <> .vTesting THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET QUOTES=''''
ENDIF
SET VAR vTmp = (CVAL('CASE'))
IF vTmp <> 'OFF' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET CASE OFF
ENDIF
SET VAR vTmp = (CVAL('IDQUOTES'))
IF vTmp <> '`' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET IDQUOTES='`'
ENDIF
SET VAR vTmp = (CVAL('RULES'))
IF vTmp <> 'ON' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET RULES ON
ENDIF
SET VAR vTmp = (CVAL('DELIMIT'))
IF vTmp <> ',' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET DELIMIT=','
ENDIF
SET VAR vTmp = (CVAL('LINEEND'))
IF vTmp <> 'þ' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET LINEEND='þ'
ENDIF
SET VAR vTmp = (CVAL('ROWLOCKS'))
IF vTmp <> 'ON' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET ROWLOCKS ON
ENDIF
SET VAR vTmp = (CVAL('WALKMENU'))
IF vTmp <> 'ON' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET WALKMENU ON
ENDIF
SET VAR vTmp = (CVAL('QUALCOLS'))
IF vTmp <> '2' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET QUALCOLS 2
ENDIF
SET VAR vTmp = (CVAL('WHILEOPT'))
IF vTmp <> 'OFF' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET WHILEOPT OFF
ENDIF
SET VAR vTmp = (CVAL('SINGLE'))
IF vTmp <> '_' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET SINGLE=NULL
SET SINGLE=_
ENDIF
SET VAR vTmp = (CVAL('MANY'))
IF vTmp <> '%' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET MANY=NULL
SET MANY=%
ENDIF
SET VAR vTmp = (CVAL('NULL'))
IF vTmp <> '-0-' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET NULL '-0-'
ENDIF
SET VAR vTmp = (CVAL('DATE FORMAT'))
IF vTmp <> 'MM/DD/YY' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET DATE FOR MM/DD/YY
ENDIF
SET VAR vTmp = (CVAL('DATE SEQUENCE'))
IF vTmp <> 'MMDDYY' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET DATE SEQ MMDDYY
ENDIF
SET VAR vTesting = (CVAL('DATE CENTURY'))
SET VAR vYearText = (CTXT(INT(FORMAT(.#DATE,'YYYY')) - 90))
SET VAR vTmp = (SGET(.vYearText,2,1))
IF vTmp <> .vTesting THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET DATE CENTURY &vTmp
ENDIF
SET VAR vTesting = (CVAL('DATE YEAR'))
SET VAR vTmp = (SGET(.vYearText,2,3))
IF vTmp <> .vTesting THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET DATE YEAR &vTmp
ENDIF
SET VAR vTmp = (CVAL('TIME FORMAT'))
IF vTmp <> 'HH:MM' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET TIME FOR HH:MM
ENDIF
SET VAR vTmp = (CVAL('TIME SEQUENCE'))
IF vTmp <> 'HHMMSS' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET TIME SEQ HHMMSS
ENDIF
SET VAR vTmp = (CVAL('ZERO'))
IF vTmp <> 'ON' THEN
SET VAR vConnUseFlag = 1
&vOwnerSet
SET ZERO ON
ENDIF
IF vConnUseFlag = 1 THEN
SET USER &vTempConnUser
ENDIF
RETURN