有谁知道vertica的odbc连接字符串的格式?

| 我正在使用以下内容:
DRIVER={Vertica ODBC Driver 4.1};
SERVER=lnxtabdb01.xxxx.com;
PORT=5433;
DATABASE=vertica;
USER=dbadmin;
PASSWORD=vertica;
OPTION=3;
我收到此错误,我只想确保在检查其他可能的问题之前我的连接字符串很酷。 错误:
EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [28000] FATAL: no Vertica user name specified in startup packet
更新: 目前,我只是在使用Windows Vista中使用的系统数据源名称。但是我仍然想知道是否有一个odbc连接字符串,这样我就不必在将以这种方式连接到Vertica DB的每台计算机上进行设置。 好吧,我尝试了一个如下所示的postgresql连接字符串:
Host=lnxtabdb01.xxxx.com;
Port=5433;
Database=vertica;
User ID=dbadmin;
Password=vertica;
Pooling=true;
OPTION=3;
Min Pool Size=0;
Max Pool Size=100;
Connection Lifetime=0;
现在我得到这个:
EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    
已邀请:
我也没有看到没有DSN的任何使用ODBC的方法。这是我的Linux工作站的DSN设置。
[VerticaDSN]
Description = VerticaDSN ODBC driver
Driver = /opt/vertica/lib64//libverticaodbc_unixodbc.so
Database = Retail
Servername = localhost
UserName = vertica
Password =
Port = 5433
    
可接受的答案描述了使用系统
DSN
与Vertica
ODBC driver
进行连接的方法。可以仅使用连接字符串进行连接,以直接针对驱动程序配置连接。以下连接字符串模式已针对ѭ7进行了测试:
Driver=Vertica;Server=MyVerticaServer;Port=5433;Database=MyVerticaDB;UID=foo;PWD=bar
端口是可选的:
Driver=Vertica;Server=MyVerticaServer;Database=MyVerticaDB;UID=foo;PWD=bar
或者,如果您按原样在.NET中执行此操作,则可以使用此命令根据必要的参数来格式化连接字符串:
var connectionString = string.Format(
            \"Driver=Vertica;Server={0};{1}Database={2};UID={3};PWD={4}\",
            server,
            port == null ? string.Empty : string.Format(\"Port={0};\", port),
            database,
            username,
            password);
    
您可以使用包含以下内容的连接字符串连接到Vertica ODBC数据源,而无需配置/指定数据源名称(DSN): 视窗:
Driver=Vertica ODBC Driver 4.1;Servername=hostname;Port=5433;Database=vertica;UserName=dbadmin;Password=sekret
Linux / Unix
Driver=Vertica;Servername=hostname;Port=5433;Database=vertica;UserName=dbadmin;Password=sekret
用适合您的环境的字体替换每个斜体的“ 13”。 (注意:连接字符串中的
name=value
对似乎区分大小写。)     
您看过http://www.connectionstrings.com/吗?它没有具体列出Vertica数据库,但还有许多其他数据库类型可能与vertica足够相似,它们可以很好地转换。     
使用ODBC时,我总是使用Windows并设置DSN。但是,我唯一的建议是对Vertica中许多不同类型的问题提出一般建议,那就是尝试PostgreSQL的ODBC格式。 多数情况下,并非全部都基于PostgreSQL,尤其是SQL语法和函数。因此,我将去前面提到的http://www.connectionstrings.com并查找PostgreSQL,但是这样做。     
好的,我正在搜索Vertica文档,并且在没有创建DSN的情况下看不到任何与ODBC连接的方法。 JDBC似乎是另一回事。如果有办法,我看不到。 问题似乎是(假设您有驱动程序)系统不知道您的连接字符串应由Vertica驱动程序处理。 DSN已经指定了该名称,所以这就是为什么该名称有效的原因(我的推测)。 这是他们为JDBC提供的示例: \“ jdbc:vertica:// server:port / db?user = username&password = password&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. 
    

要回复问题请先登录注册