Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez cet article pour trouver des conseils de dépannage pour le mssql-python conducteur. Commencez par le symptôme ou le message d’erreur qui correspond à votre problème.
Problèmes d’installation
pip échoue à l’installation ou compile à partir du code source
Pour les versions de Python non prises en charge, les wheels manquants, les environnements virtuels inactifs et les bibliothèques Linux manquantes, consultez Résoudre les problèmes d’installation et de connexion.
Installations de pilotes en conflit
Pour les erreurs d’importation ou les comportements inattendus lorsque mssql-python et pyodbc sont installés ensemble, voir Dépannage des problèmes d’installation et de connexion.
Problèmes de connexion
Impossible de se connecter au serveur
Pour SQLSTATE08001, serveurs inaccessibles, services arrêtés et règles de pare-feu Azure SQL, voir Dépannage des problèmes d’installation et de connexion.
Échec de la connexion
Pour SQLSTATE 28000, les incompatibilités de modes d’authentification, les identifiants invalides et les utilisateurs manquants de bases de données, voir Dépannage des problèmes d’installation et de connexion.
Délai d’expiration de la connexion
Pour SQLSTATE HYT00 ou HYT01, la latence réseau, les serveurs lents et les paramètres de délai de connexion, voir Dépannage des problèmes d’installation et de connexion.
Erreurs de certificat SSL
Pour les erreurs de certificat non fiables et les options de développement local sécurisées, voir Dépannage des problèmes d’installation et de connexion.
Problèmes d’exécution des requêtes
Table ou objet non trouvé
Pour les vérifications SQLSTATE 42S02, du contexte de la base de données, de la qualification du schéma et de l’existence de la table, voir Résoudre les problèmes liés aux requêtes, aux données et aux opérations.
Erreur de syntaxe
Pour SQLSTATE 42000, ainsi que pour la syntaxe SQL, l’échappement de chaînes et les requêtes paramétrées, voir Résoudre les problèmes liés aux requêtes, aux données et aux opérations.
Erreurs de paramètres
Pour SQLSTATE 07001, le nombre d’espaces réservés et les styles de paramètres pris en charge, consultez Résoudre les problèmes liés aux requêtes, aux données et aux opérations.
Problèmes de type de données
Erreurs de conversion de date et d’heure
Pour SQLSTATE 22007 et la conversion du paramètre datetime, voir Résoudre les problèmes de requête, de données et d’opération.
Problèmes de précision décimale
Pour les valeurs décimales tronquées ou arrondies, voir Résoudre les problèmes de requête, de données et d’opérations.
Problèmes d’encodage Unicode
Pour les caractères spéciaux illisibles et les types de colonnes Unicode, voir Résoudre les problèmes de requête, de données et d’opération.
Problèmes de performance
Exécution lente des requêtes
Pour l’indexation, les jeux de résultats volumineux et le regroupement de connexions, voir Résoudre les problèmes de requête, de données et d’opérations.
Problèmes de mémoire avec des résultats volumineux
Pour le streaming et la pagination de grands ensembles de résultats, voir Résoudre les problèmes liés aux requêtes, aux données et aux opérations.
Problèmes de transaction
Portée de table temporaire avec validation automatique
Pour les tables temporaires qui disparaissent après une annulation et les instructions DDL nécessitant une validation automatique, voir Résoudre les problèmes de requête, de données et d’opérations.
Transaction non engagée
Pour les modifications de données qui ne sont pas conservées après la fermeture de la connexion, consultez Résoudre les problèmes de requête, de données et d’opération.
Erreurs d’interblocage
Pour SQLSTATE 40001, les conseils de réévaluation et l’analyse des blocages récurrents, voir Problèmes de requête, données et opérations.
Problèmes de chargement en masse
Violations de contraintes lors d’une copie en bloc
Pour les violations de contrainte de clé primaire, d’unicité, CHECK ou de clé étrangère lors de la copie en bloc, voir Résoudre les problèmes de requête, de données et d’opération.
Erreurs de correspondance de colonnes
Pour les problèmes de non-correspondance du nombre de colonnes et de l’ordre des colonnes lors d’une copie en bloc, voir Résoudre les problèmes liés aux requêtes, aux données et aux opérations.
Désaccords de type lors de la copie en vrac
Pour les valeurs tronquées, arrondies ou incorrectes après une copie en masse, consultez Résoudre les problèmes de requête, de données et d’opération.
Défaillances de liaison de type NumPy
Pour les échecs de liaison de paramètres avec des types entiers ou à virgule flottante de NumPy, voir Résoudre les problèmes de requête, de données et d’opération.
Bulkcopy avec tables temporaires
Pour résoudre les erreurs Invalid object name lorsque vous utilisez bulkcopy() avec une table temporaire de session, consultez Résoudre les problèmes de requête, de données et d’opération.
Problèmes liés aux conteneurs et à la CI
Bibliothèques système manquantes sur Linux
Pour les bibliothèques manquantes libltdl ou Kerberos dans les environnements Linux, voir Dépannage des problèmes d’installation et de connexion.
Erreurs SSL de macOS après installation
Pour les erreurs liées à SSL sur macOS, y compris Apple Silicon, voir Dépannage des problèmes d’installation et de connexion.
Outils de diagnostic
Activer la journalisation des pilotes
Utilisez mssql_python.setup_logging() pour activer la journalisation DEBUG. Le pilote enregistre les instructions SQL, les paramètres, les opérations ODBC internes et les changements d’état de connexion.
import mssql_python
# Enable logging to file (default)
mssql_python.setup_logging()
# Output to stdout (useful for CI/CD and containers)
mssql_python.setup_logging(output="stdout")
# Output to both file and stdout
mssql_python.setup_logging(output="both")
# Custom log file path (must use .txt, .log, or .csv extension)
mssql_python.setup_logging(log_file_path="/var/log/myapp/mssql.log")
Les fichiers journaux utilisent le format CSV et font l’objet d’une rotation automatique lorsqu’ils atteignent 512 Mo, avec cinq fichiers de sauvegarde. Le pilote désinfecte les données sensibles telles que les mots de passe et les jetons d’accès dans les sorties journalières.
Pour ajouter des entrées d’application au journal des pilotes, utilisez driver_logger:
import mssql_python
from mssql_python.logging import driver_logger
mssql_python.setup_logging()
driver_logger.debug("[App] Starting data processing")
driver_logger.error("[App] Failed to process record")
Caution
La journalisation comporte une surcharge de performance. Activez-le uniquement lorsque vous résolvez un problème. Ne l’activez pas en production par défaut.
Obtenez les informations du conducteur
Récupérez la version du pilote et les détails du serveur depuis une connexion active :
import mssql_python
conn = mssql_python.connect(connection_string)
print(f"Version: {mssql_python.__version__}")
print(f"Server name: {conn.getinfo(mssql_python.SQL_SERVER_NAME)}")
print(f"Database name: {conn.getinfo(mssql_python.SQL_DATABASE_NAME)}")
Vérifier l’état de la connexion
Lancez une requête légère pour vérifier si une connexion est toujours ouverte :
import mssql_python
try:
cursor = conn.cursor()
cursor.execute("SELECT 1")
print("Connection is open")
except mssql_python.Error:
print("Connection is closed or broken")
Référence rapide : Erreurs courantes
| Error | SQLSTATE | Cause courante | Résolution des problèmes |
|---|---|---|---|
| Le client ne peut pas établir de connexion | 08001 |
Serveur inaccessible | Impossible de se connecter au serveur |
| Échec de la connexion | 28000 |
Informations d’identification incorrectes | Connexion échouée |
| Délai expiré |
HYT00 ou HYT01 |
Réseau lent | Délai de connexion |
| Nom d’objet non valide | 42S02 |
Tableau ou schéma incorrect | Table ou objet non trouvé |
| Erreur de syntaxe | 42000 |
Erreur SQL | Erreur de syntaxe |
| Violation de contrainte | 23000 |
Violation de clé étrangère ou de clé primaire | Violations de contraintes lors d’une copie en masse |
| Deadlock | 40001 |
Contention de verrouillage | Erreurs de blocage |