Хорошо, я просматриваю документацию Vertica и не вижу никакого способа соединения с ODBC без создания DSN.JDBC, похоже, другое дело.Если есть способ сделать это, я его не вижу.
Похоже, проблема в том, что (если у вас есть драйвер) система не знает, что строка подключения должна обрабатыватьсяVertica водитель.В DSN это уже указано, поэтому это работает (мое обоснованное предположение).
Это пример, который они приводят для JDBC:
"jdbc: vertica: // сервер: порт / db? User = имя пользователя и пароль = пароль & ssl = true"
JDBCСтрока подключения, кажется, сообщает коду, что он должен использовать Vertica.
Позвольте мне опубликовать часть соответствующего документа (простите за форматирование) относительно ODBC:
Параметры DSN
Параметры в следующих таблицах являются общими для всех записей DSN пользователя и системы.Приведенные примеры предназначены для клиентов Windows.
Для редактирования параметров DSN:
* UNIX and Linux users can edit the odbc.ini file. (See Creating an ODBC DSN for Linux and Solaris Clients.) The location of this file is specific to the driver manager.
* Windows users can edit the DSN parameters directly by opening the DSN entry in the Windows registry (for example, at HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\vmartdb). However, the Vertica-preferred method is to follow the steps in Creating an ODBC DSN for Windows Clients.
* Parameters can be set while making the connection using SQLDriverConnect().
sqlRet = SQLDriverConnect(sql_hDBC, 0, (SQLCHAR*)"DSN=VerticaSQL;BinaryDataTransfer=1",
SQL_NTS, szDNS, 1024,&nSize, SQL_DRIVER_NOPROMPT);
Note: In the connection string ';' is a reserved symbol. If you need to set multiple parameters as part of ConnSettings parameter use '%3B' in place of ';'. Also use '+' instead of spaces.
For Example:
sqlRet = SQLDriverConnect(sql_hDBC, 0, (SQLCHAR*)"DSN=VerticaSQL;BinaryDataTransfer=1;ConnSettings=
set+search_path+to+a,b,c%3 Bset+locale=ch;SSLMode=prefer", SQL_NTS,
szDNS, 1024,&nSize, SQL_DRIVER_NOPROMPT);
* Parameters can also be set and retrieved after the connection has been made using SQLConnect(). Parameters can be set and retrieved using SQLSetConnectAttr(),SQLSetStmtAttr(), SQLGetConnectAttr() and SQLGetStmtAttr() API calls.