2017-03-24 5 views
0

Ich versuche, meine Informix DNS mit Pyodbc CONNECTO aber ich habe den Fehler:auf Centos mit Pyodbc zu Informix Connecting

[[email protected] Scipts]$ ./Test1.py 
Error: ('H', '[H] [unixODBC][ (4294956236) (SQLDriverConnectW)') 

Das ist mein Skript und mein CNX:

#!/usr/bin/python 

import pyodbc 
import os 
cnxn = pyodbc.connect(dsn='cms_net') 

und tatsächlich ich kann in über ISQ log:

isql -v cms_net 

[[email protected] Scipts]$ isql -v cms_net 
+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 
SQL> 

Also ich weiß nicht, was das Problem sein könnte

Antwort

0

Diese Fehlermeldung scheint unvollständig zu sein, Sie sollten etwas wie "HY004" erhalten, aber Sie erhalten nur das erste Zeichen "H". Das passiert normalerweise, wenn die UNICODE-Einstellung in der ODBC.INI nicht richtig festgelegt ist.

Die "isql" unixODBC ist nicht Unicode, ich glaube, es gibt eine namens "iusql" in unixODBC, die Unicode ist, und sollte besser "simulieren", was Sie tun, von Python. Ich schätze, wenn Sie diese Version mit dem gleichen DSN versuchen, würden Sie den gleichen abgeschnittenen Fehler erhalten.

Für unixODBC ist normalerweise auf:

[ODBC] 
;uncomment the below line for UNICODE connection 
UNICODE=UCS-2 

versuchen also, fügte hinzu, dass auf Ihre ODBC.ini

0

ich diesen Fehler nicht beheben kann, aber ich änderte meine Bibliothek diese Bibliothek informixdb so Whit ich kann meine Informix Whit python über diese Verbindung an:

cnxn = informixdb.connect('[email protected]_name', 'UID', 'PWD') 

Hope this jemand helfen kann! :]