简体   繁体   English

Pyodbc连接错误

[英]Pyodbc Connection Error

Code

This is the code that I have entered using python 2.6 in linux Red Hat 64bit 这是我在linux Red Hat 64bit中使用python 2.6输入的代码

import pyodbc

print pyodbc.dataSources()

print "Connecting via ODBC"

conn = pyodbc.connect("DRIVER={NetezzaSQL};SERVER=localhost;PORT=5480;DATABASE=Database;UID=santiago;PWD=ha123;")

Error 错误

This is the true error I received when running pyodbc. 这是我在运行pyodbc时收到的真正错误。 I don't know what this language is or what it means? 我不知道这是什么语言或什么意思?

{'ODBC': '', 'NetezzaSQL': '/usr/local/nz_7.2.0.3/lib64/libnzodbc.so'}
Connecting via ODBC
Traceback (most recent call last):
  File "connect.py", line 41, in <module>
conn = pyodbc.connect("DRIVER{NetezzaSQL};SERVER=localhost;PORT=5480;DATABASE=Database;UID=santiago;PWD=ha123;")
pyodbc.Error: ('H00', '[H00] [unixODBC]Sre n/rpr trbtsaeepy\xc8 (33) (SQLDriverConnectW)')

obdcinst.ini obdcinst.ini

This is the obdcinst file used 这是使用的obdcinst文件

[ODBC Drivers]
NetezzaSQL = Installed

[NetezzaSQL]
Driver           = /usr/local/nz_7.2.0.3/lib64/libnzodbc.so
Setup            = /usr/local/nz_7.2.0.3/lib64/libnzodbc.so
APILevel         = 1
ConnectFunctions = YYN
Description      = Netezza ODBC driver
DriverODBCVer    = 03.51
DebugLogging     = false
LogPath          = /tmp
UnicodeTranslationOption = utf8
CharacterTranslationOption = all
PreFetch         = 256
Socket           = 16384

obdc.ini obdc.ini

This the odbc configuration file used 这个odbc的配置文件

;
;  odbc.ini
;
[ODBC Data Sources]
NZSQL = NetezzaSQL


[NetezzaSQL]
;Path of a driver used for database connection
Driver                = /usr/local/nz_7.2.0.3/lib64/libnzodbc.so

;A decription used to identify the database connection properties.
Description           = NetezzaSQL ODBC

;The name of a machine or IP address where the database is located.
Servername            = 127.0.0.1

;The port number to connect.
Port                  = 5480

;The name of a database.
Database              = dev

;The name of a valid user.
Username              = guest

;The password for  the user.
Password              = password

;Only Select SQL statements will be allowed if this field is checked.
ReadOnly              = false

;When this option is enabled and the application bindtype is same as   backend
;datatype the query performance will be faster.Query performance gain will be achieved 
;only for single select statements (not for batch queries).It also works in case when
;application bind type is different than backend datatype but there are some restrictions on it.
FastSelect            = false

;When set to true, system tables will be included in the available table list.
ShowSystemTables      = false

;When set to true, use old (2.5) functionality for returning schemas in  SQLTables.
LegacySQLTables       = false

;Specifies login timeout in seconds.
LoginTimeout          = 0

;Specifies query timeout in seconds.
QueryTimeout          = 0

;Specifies date format as follows -
; 1: YMD
; 2: MDY
; 3: DMY
DateFormat            = 1

;When selected, driver treats SQL_C_NUMERIC buffers as SQL_C_CHAR   buffers.
NumericAsChar         = false

;Return SQL_BIT as "1"/"0" when char.
SQLBitOneZero         = false

;When enabled, replaces all occurences of CRLF, CR and LF with a single space.
StripCRLF             = false

;Specifies level of security on the system
securityLevel         = preferredUnSecured

;Name of the Root CA certificate.
caCertFile            =

;Specifies maximum errors allowed. 0 value means no limit on  loadMaxErrors value.
;loadMaxErrors         = 1

;If value is true, it rounds the data of numeric columns whose precision  exceeds the precision defined.
;loadRoundFraction     = 0


[ODBC]
IANAAppCodePage=4
InstallDir=/opt/odbc32v51
Trace=0
TraceDll=/opt/odbc32v51/lib/odbctrac.so
TraceFile=odbctrace.out
UseCursorLib=0

If anything else is needed to determine solution please let me know. 如果需要其他任何方法来确定解决方案,请告诉我。

I can't tell you what the error means as I don't recognize the language either. 由于我也不认识该语言,因此我无法告诉您错误的含义。 However, the Netezza ODBC port is 5480, while you specify 5668 in your connection method. 但是,当您在连接方法中指定5668时,Netezza ODBC端口为5480。 Also, is the database you really want to connect to is actually named "Database"? 另外,您真正要连接的数据库是否真的被命名为“数据库”?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM