Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usa questo articolo per trovare indicazioni di risoluzione dei problemi per il mssql-python conducente. Inizia con il sintomo o il messaggio di errore che corrisponde al tuo problema.
Problemi di installazione
Fallimento dell'installazione di PIP o compilazione dal sorgente
Per versioni Python non supportate, ruote mancanti, ambienti virtuali inattivi e librerie Linux mancanti, vedi Troubleshoot installazione e problemi di connessione.
Installazioni di driver in conflitto
Per errori di importazione o comportamenti imprevisti quando mssql-python e pyodbc sono installati insieme, vedi Risoluzione problemi di installazione e connessione.
Problemi di connessione
Impossibile connettersi al server
Per SQLSTATE08001, server irraggiungibili, servizi fermi e regole firewall Azure SQL, vedi Troubleshoot installazione e problemi di connessione.
Accesso non riuscito
Per SQLSTATE 28000, disallineamenti di modalità di autenticazione, credenziali non valide e utenti del database assenti, vedi Troubleshoot installazione e problemi di connessione.
Timeout della connessione
Per SQLSTATE HYT00 o HYT01, latenza di rete, server lenti e impostazioni di timeout di connessione, vedi Risoluzione problemi di installazione e connessione.
Errori del certificato SSL
Per errori di certificato non affidabili e opzioni di sviluppo locale sicure, vedi Risoluzione problemi di installazione e connessione.
Problemi di esecuzione delle query
Tabella o oggetto non trovato
Per informazioni su SQLSTATE 42S02, contesto del database, qualificazione dello schema e controlli dell'esistenza delle tabelle, vedere Risolvere i problemi relativi a query, dati e operazioni.
Errore di sintassi
Per informazioni su SQLSTATE 42000, la sintassi SQL, l'escape delle stringhe e le query parametrizzate, vedere Risolvere i problemi relativi a query, dati e operazioni.
Errori dei parametri
Per informazioni su SQLSTATE 07001, il numero di segnaposto e gli stili di parametro supportati, vedere Risolvere i problemi relativi a query, dati e operazioni.
Problemi con i tipi di dati
Errori di conversione di data e ora
Per la conversione dei parametri SQLSTATE 22007 e datetime, vedere Risolvere i problemi relativi a query, dati e operazioni.
Problemi di precisione decimale
Per valori decimali troncati o arrotondati, vedi Risoluzione problemi di query, dati e operazioni.
Problemi di codifica Unicode
Per informazioni sui caratteri speciali danneggiati e sui tipi di colonna Unicode, vedere Risolvere i problemi relativi a query, dati e operazioni.
Problemi di prestazioni
Esecuzione lenta delle query
Per informazioni su indicizzazione, set di risultati di grandi dimensioni e pooling delle connessioni, vedere Risolvere i problemi relativi a query, dati e operazioni.
Problemi di memoria con risultati grandi
Per lo streaming e la paginazione di grandi set di risultati, vedi Risoluzione problemi di query, dati e operazione.
Problemi di transazione
Visibilità delle tabelle temporanee con autocommit
Per le tabelle temporanee che scompaiono dopo il rollback e per le istruzioni DDL che richiedono l'autocommit, consulta Risolvere i problemi relativi a query, dati e operazioni.
Transazione non commessa
Per i cambiamenti ai dati che non persistono dopo la chiusura della connessione, vedi Risoluzione di problemi, questioni dati e operazioni.
Errori di deadlock
Per informazioni su SQLSTATE 40001, sulle indicazioni per i nuovi tentativi e sull'analisi dei deadlock ricorrenti, vedere Troubleshoot query, data, and operation issues.
Problemi di carico in blocco
Violazioni dei vincoli durante la copia di massa
Per le violazioni dei vincoli di chiave primaria, di unicità, di controllo o di chiave esterna durante la copia in blocco, vedere Risolvere i problemi relativi a query, dati e operazioni.
Errori di mappatura delle colonne
Per le mancate corrispondenze nel numero di colonne e nell'ordine delle colonne durante la copia in blocco, vedi Risolvere i problemi relativi a query, dati e operazioni.
Discorrispondenze di tipo durante la copia di massa
Per valori troncati, arrotondati o errati dopo una copia in massa, vedi Risoluzione problemi di query, dati e operazioni.
Errori di binding dei tipi NumPy
Per gli errori nel binding dei parametri con tipi interi o in virgola mobile di NumPy, consulta Risolvere i problemi relativi a query, dati e operazioni.
Copia di massa con tabelle temporanee
Per gli errori Invalid object name quando si usa bulkcopy() con una tabella temporanea di sessione, consulta Risoluzione dei problemi di query, dati e operazioni.
Problemi di container e CI
Librerie di sistema mancanti su Linux
Per librerie libltdl o Kerberos mancanti negli ambienti Linux, vedere Risolvere i problemi di installazione e connessione.
Errori SSL di macOS dopo l'installazione
Per gli errori relativi a SSL su macOS, incluso Apple silicon, vedi Risoluzione problemi di installazione e connessione.
Strumenti di diagnostica
Abilita il logging dei driver
Usare mssql_python.setup_logging() per abilitare il DEBUG logging. Il driver registra istruzioni SQL, parametri, operazioni ODBC interne e cambiamenti di stato della connessione.
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")
I file di log usano il formato CSV e ruotano automaticamente a 512 MB con cinque backup. Il driver maschera i dati sensibili, come password e token di accesso, nell'output di log.
Per aggiungere le voci dell'applicazione al registro dei driver, usa 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")
Attenzione
Il logging ha un impatto sulle prestazioni. Attivalo solo quando risolvi un problema. Non abilitarlo in produzione di default.
Ottieni informazioni sul conducente
Recupera la versione del driver e i dettagli del server da una connessione attiva:
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)}")
Controllare lo stato della connessione
Esegui una query leggera per verificare se una connessione è ancora aperta:
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")
Riferimento rapido: Errori comuni
| Error | SQLSTATE | Causa comune | Troubleshooting |
|---|---|---|---|
| Il client non è in grado di stabilire la connessione | 08001 |
Server non raggiungibile | Impossibile connettersi al server |
| Accesso non riuscito | 28000 |
Credenziali errate | Accesso fallito |
| Il timeout è scaduto |
HYT00 oppure HYT01 |
Rete lenta | Timeout di connessione |
| Nome di oggetto non valido | 42S02 |
Tabella o schema errato | Tabella o oggetto non trovato |
| Errore di sintassi | 42000 |
Errore SQL | Errore di sintassi |
| Violazione del vincolo | 23000 |
Violazione della chiave esterna o della chiave primaria | Violazioni dei vincoli durante la copia di massa |
| Deadlock | 40001 |
Conflitto di blocco | Errori di blocco |