web-dev-qa-db-fra.com

PYODBC - Nom de la source de données introuvable et aucun pilote par défaut spécifié

import pyodbc
connection = pyodbc.connect('Driver = {SQL Server};Server=SIWSQL43A\SIMSSPROD43A;'
                            'Database=CSM_reporting;Trusted_Connection=yes;')

connection = pyodbc.connect ('Pilote = {SQL Server}; Serveur = SIWSQL43A\SIMSSPROD43A;' pyodbc.Error: ('IM002', '[IM002] [Microsoft] [Gestionnaire de pilotes ODBC] Nom de source de données introuvable et aucun pilote par défaut spécifié (0) (SQLDriverConnect) ')

5
user8560985

Ne mettez pas d'espace après le mot clé Driver dans la chaîne de connexion.

Cela échoue sous Windows ...

conn_str = (
    r'DRIVER = {SQL Server};'
    r'SERVER=(local)\SQLEXPRESS;'
    r'DATABASE=myDb;'
    r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)

... mais ça marche:

conn_str = (
    r'DRIVER={SQL Server};'
    r'SERVER=(local)\SQLEXPRESS;'
    r'DATABASE=myDb;'
    r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)
7
Gord Thompson

J'ai rencontré le même problème et je l'ai corrigé en changeant la chaîne de connexion comme ci-dessous . Write 

'DRIVER={ODBC Driver 13 for SQL Server}'

au lieu de

'DRIVER={SQL Server}'
2
Kashq

Tu pourrais essayer:

import pyodbc
# Using a DSN
cnxn = pyodbc.connect('DSN=odbc_datasource_name;UID=db_user_id;PWD=db_password')

Note: Vous aurez besoin de connaître le "odbc_datasource_name" Sous Windows, vous pouvez rechercher des sources de données ODBC. Le nom ressemblera à quelque chose comme ça:

Exemple de nom de source de données

0
dady7749