Ich versuche, über Python eine Verbindung zu SQL herzustellen, um einige Abfragen in einigen SQL-Datenbanken auf Microsoft SQL Server auszuführen. Aus meiner Online-Recherche und in diesem Forum geht hervor, dass die vielversprechendste Bibliothek pyodbc ist. Also habe ich den folgenden Code gemacht
import pyodbc
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+;
database=+MSQLDatabase+; trusted_connection=true")
cursor = conn.cursor()
und erhalte den folgenden Fehler
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)')
Ich habe mir die folgenden Beiträge angesehen und versucht, meinen Treiber auf {SQL Server} zu ändern, und habe zuvor in SAS eine Verbindung über ODBC-Links hergestellt. Dies ist teilweise der Grund, auf dem mein obiger Code basiert. Ich glaube also nicht, dass ich etwas anderes installieren muss.
Pyodbc - "Datenquellenname nicht gefunden und kein Standardtreiber angegeben"
Vielen Dank
adodbapi
, um die OLEDB-Verbindung verwenden zu können. Das Zeichenfolgenformat ist die empfohlene Methode, um Variablen an eine Zeichenfolge zu übergeben, anstatt den+
Operator zu verwenden. Die geschweiften Klammern mit Zahlen sind Platzhalter, die entsprechendformat()
ausgefüllt werden. Sie können sogar Listen und Tupel mit übergebenformat()
. Ihr ursprünglicher Code hat Zeichenfolgen und Variablen nicht in Anführungszeichen gesetzt und wurde daher+
als Teil der Zeichenfolge betrachtet.Ich bevorzuge diesen Weg ... es war viel einfacher
http://www.pymssql.org/en/stable/pymssql_examples.html
quelle
Hier sind einige Bilder für Neulinge.
quelle
Versuchen Sie es mit Pytds. Es funktioniert in Umgebungen mit einer höheren Komplexität als
pyodbc
und ist einfacher einzurichten.Ich habe es unter Ubuntu 18.04 zum Laufen gebracht
Beispielcode in der Dokumentation:
quelle
Der folgende Python-Code hat bei mir funktioniert. Um die ODBC-Verbindung zu überprüfen, habe ich zuerst eine 4-zeilige C # -Konsolenanwendung erstellt, wie unten aufgeführt.
Python-Code
Aufrufen einer gespeicherten Prozedur
C # -Programm zum Überprüfen der ODBC-Verbindung
quelle
Ein alternativer Ansatz wäre die Installation von Treiber 13 Microsoft ODBC, dann ersetzen
SQLOLEDB
mitODBC Driver 13 for SQL Server
Grüße.
quelle
Hier ist die, die für mich funktioniert:
quelle
Ich habe hier aktuelle Ressourcen gefunden: Microsoft | SQL Docs | Python SQL-Treiber
Es werden diese beiden Optionen erläutert, einschließlich aller erforderlichen Voraussetzungen und Codebeispiele: Python SQL-Treiber - pyodbc (getestet und funktionsfähig) Python SQL-Treiber - pymssql
quelle
Meine Version. Ich hoffe es hilft.
quelle
Ich habe versucht, SQL Server auf folgende Weise zu verbinden, und diese funktionierten für mich.
So stellen Sie eine Verbindung mithilfe der Windows-Authentifizierung her
Um die SQL Server-Authentifizierung zu verwenden, habe ich folgenden Code verwendet.
quelle