Соединение с источником данных ODBC успешно, но TNS не разрешено в VBScript - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь установить соединение с БД Oracle из VBScript.Я добавил все переменные окружения, и код может найти файл TNSNAMES.ora, но не может разрешить соединение.

Когда я проверяю подключение от администратора источника данных ODBC, я получаю результат «Успешно», но все равно не могу получить к нему доступ из кода.

con.ConnectionString = "DSN=DATA;Uid=wh;Pwd=pwd;"
con.Open    'This is where it fails

Я перепробовал много строк подключения, но все не удалось

OracleConnString = "Driver={Oracle in instantclient_18_3};server=server;database=db;trusted_connection=Yes;"

DB_CONN_STRING = "Driver={Oracle in instantclient_18_3}; " & _
    "(DESCRIPTION=" & _
    "(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = port)" & _
    "(CONNECT_DATA=(SERVICE_NAME=srv_name)))"

CONN_STRING = "CONNECT wh/pwd@//host/db"   

Как подключиться к базе данных из сценария?

ODBC Success

ODBC Admin

Error

1 Ответ

0 голосов
/ 13 февраля 2019

Вы смешиваете несколько тем.

Вы скрываете имя DSN и «Имя источника данных», что делает невозможным использование для предоставления правильной строки подключения.

Если вы хотите использовать DSBC ODBC, тогда соединениестрока должна быть

DSN=▇▇▇▇DATA;Uid=myUsername;Pwd=myPassword

Однако вы должны создать Системный DSN, а не Пользовательский DSN (см. ODBC DSN ).Однако, как правило, вы не используете ODBC DSN, поскольку вам нужно создать DSN на целевом компьютере, что является дополнительной работой по настройке.

Строка подключения без DSN будет

Driver={Oracle in instantclient_18_3};Dbq=?????;Uid=myUsername;Pwd=myPassword;
or
Driver={Oracle in instantclient_18_3};Server=?????;Uid=myUsername;Pwd=myPassword;

см.https://www.connectionstrings.com/oracle-in-oraclient11g_home1/

Если вы используете полное имя БД, например, (DESCRIPTION=..., тогда вам не нужен файл tnsnames.ora.Назначение этого файла - разрешить псевдоним этого полного имени БД.

Убедитесь, что драйвер ODBC имеет ту же архитектуру, т. Е. 32-разрядную или 64-разрядную, что и ваша среда VBS.

Либо используйте %windir%\system32\odbcad32.exe + %windir%\system32\cscript.exe

или %windir%\SysWOW64\odbcad32.exe + %windir%\SysWOW64\cscript.exe

...