J'essaie de me connecter à SQL via python pour exécuter des requêtes sur certaines bases de données SQL sur le serveur Microsoft SQL. D'après mes recherches en ligne et sur ce forum, la bibliothèque la plus prometteuse semble être pyodbc. J'ai donc créé le code suivant
import pyodbc
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+;
database=+MSQLDatabase+; trusted_connection=true")
cursor = conn.cursor()
et obtenez l'erreur suivante
Traceback (most recent call last):
File "C:\Users...\scrap.py", line 3, in <module>
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+; database=+MSQLDatabase+; trusted_connection=true")
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
J'ai regardé les messages suivants et essayé de changer mon pilote en {sql server} et je me suis connecté en utilisant des liens ODBC auparavant dans SAS, ce qui est en partie ce sur quoi mon code ci-dessus est basé, donc je ne pense pas avoir besoin d'installer autre chose.
Pyodbc - "Nom de la source de données introuvable, et aucun pilote par défaut spécifié"
Merci
adodbapi
pour utiliser la connexion OLEDB. Et le format de chaîne est le moyen recommandé pour passer des variables dans une chaîne plutôt que d'utiliser l'+
opérateur. Les accolades avec des nombres sont des espaces réservés qui seformat()
remplissent en conséquence. Vous pouvez même transmettre des listes et des tuples en utilisantformat()
. Votre code d'origine ne coupait pas la chaîne et les variables par des guillemets, il+
était donc considéré comme faisant partie d'une chaîne.Je préfère de cette façon ... c'était beaucoup plus facile
http://www.pymssql.org/en/stable/pymssql_examples.html
la source
Voici quelques photos pour les débutants.
la source
Essayez d'utiliser pytds, cela fonctionne dans un environnement plus complexe
pyodbc
et plus facile à configurer.Je l'ai fait fonctionner sur Ubuntu 18.04
Exemple de code dans la documentation:
la source
Suivre le code Python a fonctionné pour moi. Pour vérifier la connexion ODBC, j'ai d'abord créé une application console C # à 4 lignes, comme indiqué ci-dessous.
Code Python
Appel d'une procédure stockée
Programme C # pour vérifier la connexion ODBC
la source
Une autre approche consisterait à installer le pilote Microsoft ODBC 13, puis à le remplacer
SQLOLEDB
parODBC Driver 13 for SQL Server
Cordialement.
la source
voici celui qui fonctionne pour moi:
la source
J'ai trouvé des ressources à jour ici: Microsoft | Docs SQL | Pilote SQL Python
Il y a ces deux options expliquées, y compris toutes les conditions préalables nécessaires et des exemples de code: Pilote Python SQL - pyodbc (testé et fonctionnel) Pilote Python SQL - pymssql
la source
Ma version. J'espère que ça aide.
la source
J'ai essayé de connecter le serveur SQL de la manière suivante et celles-ci ont fonctionné pour moi.
Pour se connecter à l'aide de l'authentification Windows
Pour utiliser l'authentification du serveur SQL, j'ai utilisé le code suivant.
la source
Essayez avec
pymssql
:pip install pymssql
Production:
La connexion peut également être vérifiée depuis le terminal, avec une seule ligne de code avec
sqlcmd
. Voir la syntaxe .production:
la source