Python/ODBC : TypeError avec & entre deux chaînes
Contexte : Intégration Python vers ODBC Acomba, avant exécution de la requête; cas de mai 2021.
Validation : La cause Python est documentée et reproduite localement; aucune requête corrigée n’a été testée contre Acomba.
Solution documentée
Le demandeur avait repris une concaténation VB avec & dans un programme Python, puis reconnaît le mélange de langages. Python définit & comme un opérateur binaire, pas comme une concaténation de chaînes; l’expression échoue avant l’appel au pilote. Pour construire une requête avec des valeurs, la DB-API documente execute(opération, paramètres) et une notation dépendant de paramstyle. Le fil ne publie pas de résultat final Acomba.
Diagnostic et étapes proposés par Uni-Action
- Lire la trace et localiser si l’exception apparaît pendant la construction de la chaîne, avant cursor.execute.
- Corriger la confusion de langage dans un exemple isolé sans connexion et sans données comptables.
- Faire préparer une requête de lecture paramétrée selon l’adaptateur installé; contrôler types, marqueurs et champs avant un essai sur la société autorisée.
Précautions
Ne pas contourner ce TypeError en injectant directement les valeurs d’un formulaire dans une chaîne SQL. Aucune mise à jour, suppression ou connexion de production n’est nécessaire à la reproduction jointe.
Vérifier le résultat
Le test joint démontre l’erreur Python puis la séparation requête/valeurs avec un curseur factice. Il ne valide ni le schéma Acomba, ni le pilote, ni une connexion réelle.
Limites
Le curseur de démonstration n’est pas un pilote. Le point d’interrogation n’est valable que pour un adaptateur utilisant le paramstyle qmark.
Procédures internes
Sources et niveau de validation
Une solution communautaire décrit un cas rapporté, pas une garantie pour toutes les versions. Les précautions générales de sauvegarde sont des consignes éditoriales Uni-Action.
- Requête SQL avec paramètrefirsthand_community · Le demandeur reconnaît avoir mélangé du VB et du Python; aucune requête corrigée avec résultat Acomba n’est publiée. · Consulté le 2026-09-29
- Python — expressions, opérateurs binairesofficial_platform · La documentation Python définit la concaténation avec + et le rôle binaire de &. · Consulté le 2026-09-29
- PEP 249 — Python Database API Specification v2.0official_platform · execute reçoit séparément l’opération et les paramètres; leur notation dépend du paramstyle du module. Pas une validation du pilote ODBC Acomba. · Consulté le 2026-09-29