2017-03-24 1 views
0

Je suis en train de Connecto mon Informix DNS avec pyodbc mais j'ai l'erreur:Connexion à Informix avec pyodbc sur CentOS

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

Ce que mon script et mon CNX:

#!/usr/bin/python 

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

et en fait Je peux connecter via ISQ:

isql -v cms_net 

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

donc je ne sais pas ce qui pourrait être le problème

Répondre

0

Ce message d'erreur semble incomplet, vous devriez obtenir quelque chose comme "HY004", mais vous obtenez seulement le premier caractère "H". Cela se produit normalement lorsque le paramètre UNICODE dans le fichier ODBC.INI n'est pas correctement défini. Le "isql" unixODBC n'est pas Unicode, je crois qu'il y en a un appelé "iusql" inclus avec unixODBC qui est unicode, et devrait "simuler" mieux ce que vous faites de python. Je suppose que si vous essayez cette version avec le même DSN, vous obtiendrez la même erreur tronquée.

Pour unixODBC est normalement réglé sur:

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

Alors, essayez d'ajouter que votre ODBC.ini

0

Je ne peux pas corriger cette erreur mais je changé ma bibliothèque informixdb si petit morceau de cette bibliothèque Je peux connecter mon python Whit Informix utilisant cette connexion:

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

Espérons que cela peut aider quelqu'un! :]