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)