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 requete select/insert sur la table pays : ok
- Testé > iodbctest "DSN=testdb;UID=admin;PWD=a99"
connexion et requete select/insert sur la table pays : ok
Là ou cela coince c'est dans mon code de test : t01.py
qui me renvoie le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 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()
Traceback (most recent call last):
File "t01.py", line 4, in <module>
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
Merci d'avance
Partager