In the event it is helpful, here is what I do for one of my applications which contains a large number of settings. I store mine in a table. I can assign a default value and the Parity function applies it to the user when they load the settings. This approach allows me to handle any number of variables for any number of users and a small bit of code to manage them.
Jim
CREATE TABLE `settings` (
`rec_num` int(11) NOT NULL AUTO_INCREMENT,
`use_login` char(25) NOT NULL,
`set_module` varchar(15) NOT NULL,
`vname` varchar(30) NOT NULL,
`vtype` varchar(15) DEFAULT NULL,
`vvalue` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`use_login`,`set_module`,`vname`),
UNIQUE KEY `rec_num_UNIQUE` (`rec_num`)
)
#DefineSubRoutine Parity_Settings(use_loginp, set_module)
SQLText = "Select * from settings where settings.use_login = 'default' and set_module = '%set_module%'"
myREC2.Open (SQLText, myConn, adOpenStatic, adLockReadOnly, adCmdText)
While myREC2.EOF == @FALSE
vname = myREC2.fields("vname").value
vtype = myREC2.fields("vtype").value
vvalue = StrReplace(StrReplace(myREC2.fields("vvalue").value,"\","\\"),"'","''")
SQLText = "Insert Ignore into settings (vvalue, use_login, set_module, vname, vtype) values ('":vvalue:"', '%use_loginp%', '%set_module%', '%vname%','%vtype%');"
myConn.Execute(SQLText)
myREC2.MoveNext
EndWhile
myREC2.Close
#EndSubRoutine
#DefineSubRoutine Load_Settings(use_loginp, set_module, vname)
vname_save = vname
and_vname = ""
If vname != "" Then and_vname = " and vname = '%vname%' "
SQLText = "Select * from settings where settings.use_login = '%use_loginp%' and set_module = '%set_module%' ":and_vname
myREC2.Open (SQLText, myConn, adOpenStatic, adLockReadOnly, adCmdText)
While myREC2.EOF == @FALSE
vname = myREC2.fields("vname").value
vvalue= myREC2.fields("vvalue").value
vtype = myREC2.fields("vtype").value
%vname% = vvalue
myREC2.MoveNext
EndWhile
myREC2.Close
If vname_save != "" Then Return vvalue
#EndSubRoutine
#DefineSubRoutine Save_Settings(use_loginp, set_module)
SQLText = "Select * from settings where settings.use_login = '%use_loginp%' and set_module = '%set_module%'"
myREC2.Open (SQLText, myConn, adOpenStatic, adLockReadOnly, adCmdText)
While myREC2.EOF == @FALSE
vname = myREC2.fields("vname").value
vtype = myREC2.fields("vtype").value
vvalue = StrReplace(StrReplace(%vname%,"\","\\"),"'","''")
SQLText = "Insert into settings (vvalue, use_login, set_module, vname, vtype) values ('":vvalue:"', '%use_loginp%', '%set_module%', '%vname%','%vtype%') ON DUPLICATE KEY UPDATE vvalue = '%vvalue%';"
myConn.Execute(SQLText)
myREC2.MoveNext
EndWhile
myREC2.Close
#EndSubRoutine