URL: https://linuxfr.org/forums/programmation-python/posts/odbc-avec-pyodbc Title: ODBC avec pyodbc Authors: PhilDeDakar Date: 2018年08月17日T15:28:49+02:00 License: CC By-SA Tags: odbc Score: 0 Bonjour, Débutant sur python depuis 48 heures, je bute sur un problème et je n'ai trouvé nul part comment le résoudre. Ma configuration Ubuntu 18.04 - Python 2.7 Le but final est de se connecter avec ODBC à un serveur HyperFile-SQL installée sur le serveur Ubuntu. Pour cela j'ai : - Installé et testé le serveur HFSQL en créant une base test_db avec une table pays. - sudo apt install libodbc1 libiodbc2-dev iodbc pip - pip install pyodbc - Installé le driver HFSQL avec le script fourni*: sudo ./install.sh - Créé par le script : /etc/odbcinst.ini [ODBC Drivers] HFSQL = Installed [HFSQL] Description = HFSQL ODBC Driver Driver = /home/phil/odbc/wd200hfo64.so - Créé : /etc/odbc.ini [ODBC Data Sources] testdb = HFSQL [testdb] Driver = /home/phil/odbc/wd200hfo64.so Server Name = 127.0.0.1 Server Port = 4900 Database = test_db UID = admin - Testé> iodbctest "DRIVER={HFSQL};Server Name=127.0.0.1;Server Port=4900;Database=test_db;UID=admin;PWD=a99" connexion et requête select/insert sur la table pays : ok - Testé> iodbctest "DSN=testdb;UID=admin;PWD=a99" connexion et requête select/insert sur la table pays : ok Là ou cela coince c'est dans mon code de test : t01.py import pyodbc cs = "DRIVER={HFSQL};Server Name=127.0.0.1;Server Port=4900;Database=test_db;UID=admin;PWD=a99" db = pyodbc.connect(cs) print "Connexion ok" db.close() qui me renvoie le message suivant : Traceback (most recent call last): File "t01.py", line 4, in db = pyodbc.connect(cs) pyodbc.Error: ('0000', u'[0000] [unixODBC]I (0) (SQLDriverConnect)') Erreur identique si je met : cs = "DSN=testdb;UID=admin;PWD=a99" J'ai regardé la configuration odbc avec la commande odbcinst -j et j'obtient unixODBC 2.3.4 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/phil/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 Voyant sur la première ligne, ainsi que dans le message d'erreur : "unixODBC", j'ai supposé que Python n'utilise pas iodbc mais unixODBC, alors j'ai exécuté sudo apt install unixodbc. Aucun changement ! Une idée pour que j'avance un peu

AltStyle によって変換されたページ (->オリジナル) /