PowerBuilder provides several functions you can use to manage application settings in the Windows registry.
Function |
Description |
|---|---|
RegistryDelete |
Deletes a key or a value in a key in the Windows registry. |
RegistryGet |
Gets a value from the Windows registry. |
RegistryKeys |
Obtains a list of the keys that are child items (subkeys) one level below a key in the Windows registry. |
RegistrySet |
Sets the value for a key and value name in the Windows registry. If the key or value name does not exist, RegistrySet creates a new key or value name. |
RegistryValues |
Obtains a list of named values associated with a key. |
For the complete information for these functions, see the PowerScript Reference.
You can use the ProfileString functions to obtain information from the registry instead of from an initialization file. Create a new key called INIFILEMAPPING at the following location:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
To override the WIN.INI file, create a subkey in INIFILEMAPPING called WIN.INI with the following value:
#usr:software\microsoft\windows\currentversion\extensions
The examples that follow use the registry to keep track of database connection parameters. The connection parameters are maintained in the registry in the MyCo\MyApp\database branch under HKEY_CURRENT_USER\Software.
The following script retrieves values for the default Transaction object from the registry.
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbms", sqlca.DBMS)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"database", sqlca.database)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"userid", sqlca.userid)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbpass", sqlca.dbpass)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"logid", sqlca.logid)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"logpass", sqlca.logpass)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
“servername", sqlca.servername)
RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbparm", sqlca.dbparm)
The following script stores the values for the Transaction object in the registry:
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbms", sqlca.DBMS)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"database", sqlca.database)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"userid", sqlca.userid)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbpass", sqlca.dbpass)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"logid", sqlca.logid)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"logpass", sqlca.logpass)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"servername", sqlca.servername)
RegistrySet("HKEY_CURRENT_USER\Software\MyCo\MyApp\database", &
"dbparm", sqlca.dbparm)