Closed tfondrat closed 2 days ago
Thank you for your bug report. I have never managed to find an ODBC driver for Linux that could connect correctly to a papi database.
We won't fix this issue with the drivers, but we will simply not use Access, eventually
Description du bug
Tentative de faire fonctionner papi-web sous ubuntu. Problème d'exécution des requêtes
Comment reproduire le bug
Système : Ubuntu 22.04.5 LTS
Installation pilote1 ) Isntallation driver access : sudo apt install mdbtools après avoir recherché l'emplacement de la librairie, j'ai modifié le fichier /etc/odbinst.ini : [MDBTools] Description=MDBTools Driver Driver=/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so Setup=/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so FileUsage=1 UsageCount=2
Modification dans database/access/access.py/access_driver() : def access_driver() -> str:
return "MDBTools" #'Ancien : Microsoft Access Driver (.mdb, .accdb)' Le programme se lance
3 Lors de la tentative d'accès à la base erreur File "/home/tfondrat/papi-web/database/access.py", line 64, in _execute self.cursor.execute(query, params) pyodbc.InterfaceError: ('IM001', '[IM001] [unixODBC][Driver Manager]Driver does not support this function (0) (SQLNumParams)')
4 Tests interactif Reprise des variables : query= "SELECT
Value
FROMinfo
WHEREVariable
= ?" params="('NbrRondes',)" query= "SELECTValue
FROMinfo
WHEREVariable
= ?" MEME ERREUR. Programme qui fonctionne : import pyodbcConfiguration de la chaîne de connexion
conn_str = ("DRIVER={MDBTools};""DBQ=./TournoiLyceesRolandGarros.papi;") try: conn = pyodbc.connect(conn_str) cursor = conn.cursor() cursor.execute("SELECT Value FROM info WHERE Variable = 'NbrRondes'") for row in cursor.fetchall(): print(row) except Exception as e: print("Erreur :", e)
PROPOSITION : Modifiser la fonction def _execute(self, query: str, params: tuple = ()): de la classe AccessDataBase Il semble que le pilote sous linux ne gère pas le nombre de paramètres sous linux.