Próbuję połączyć się z SQL za pomocą Pythona, aby uruchomić niektóre zapytania w niektórych bazach danych SQL na serwerze Microsoft SQL. Z moich badań online i na tym forum najbardziej obiecująca biblioteka wydaje się być pyodbc. Więc zrobiłem następujący kodŁączenie się z serwerem Microsoft SQL przy użyciu Pythona
import pyodbc
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+;
database=+MSQLDatabase+; trusted_connection=true")
cursor = conn.cursor()
i pojawia się następujący błąd
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)')
Mam spojrzał na następujace stanowiska i próbowali zmiany mojego kierowcę {SQL Server} i podłączonego przy użyciu łącza ODBC przed w SAS, który jest częściowo tym, na którym opiera się mój powyższy kod, więc nie myśl, że muszę zainstalować cokolwiek innego.
Pyodbc - "Data source name not found, and no default driver specified"
Dzięki
Dzięki za wyjaśnienie i kod mam sterownik jeden do pracy. Chociaż musiałem pozbyć się .format (...) i umieść zmienne w odpowiednich miejscach. Jaki miał być format? –
Musisz zainstalować 'adodbapi', aby użyć połączenia OLEDB. Format ciągów jest zalecanym sposobem przekazywania zmiennych w łańcuchu zamiast używania operatora '+'. Kręcone nawiasy z liczbami są symbolami zastępczymi, które 'format()' odpowiednio wypełnia. Możesz nawet przekazywać listy i krotki używając 'format()'. Twój oryginalny kod nie przerwał ciągu znaków i zmiennych przez cudzysłowy, więc '+' było uważane za część ciągu. – Parfait
Ta odpowiedź jest świetna i pomogła mi rozwiązać problem. ktokolwiek próbuje to zrobić, pamiętaj, że możesz otrzymać wyjątek, jeśli ustawisz zaufane połączenie = tak i wprowadzisz UID/pwd w tym samym ciągu połączenia. Jest to jedna lub żadna kombinacja, a podczas korzystania z zaufanego połączenia twoje poświadczenia NT/systemu są używane do uwierzytelniania, nawet jeśli wyraźnie wymieniasz UID/PWD. – S4nd33p