См. RegistryValues () в справке PowerBuilder. Следующее не совсем то, что вы хотите, но оно показывает пару рабочих вызовов ...
integer li_RC
string ls_odbc_ini[]
li_RC = RegistryValues ( &
"HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources", &
ls_odbc_ini )
IF li_RC <> 1 THEN
MessageBox ( 'Error', &
'RegistryValues failed in website.open' )
RETURN
END IF
MessageBox ( 'A user DSN...', ls_odbc_ini[1] )
li_RC = RegistryValues ( &
"HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources", &
ls_odbc_ini )
IF li_RC <> 1 THEN
MessageBox ( 'Error', &
'RegistryValues failed in website.open' )
RETURN
END IF
MessageBox ( 'A system DSN...', ls_odbc_ini[1] )
Другим предложением является чтение информации о соединении с любого DSN, который вы хотите, а затем использование соединения без DSN, чтобы избежать «выбора неправильного DSN».
SQLCA.DBMS = 'ODB'
SQLCA.DBParm &
= "ConnectString='Driver=SQL Anywhere 10;" &
+ "UID=dba;PWD=sql;DatabaseName=ruralfinds_local;EngineName=ruralfinds_local'," &
+ "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"
CONNECT USING SQLCA;
IF SQLCA.SQLCODE <> 0 THEN
MessageBox ( 'Error', &
'CONNECT failed in open:' &
+ '~r~nSQLCode = ' &
+ String ( SQLCA.SQLCode ) &
+ '~r~nSQLDBCode = ' &
+ String ( SQLCA.SQLDBCode ) &
+ '~r~n' &
+ SQLCA.SQLErrText )
RETURN
END IF
Брек