Я пытаюсь подключиться к SQL через python для запуска некоторых запросов в некоторых SQL-базах данных на сервере Microsoft SQL. Из моих исследований в Интернете и на этом форуме наиболее перспективной библиотекой, по-видимому, является pyobbc. Таким образом, я сделал следующий кодПодключение к серверу Microsoft SQL с использованием Python
import pyodbc
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+;
database=+MSQLDatabase+; trusted_connection=true")
cursor = conn.cursor()
и получить следующее сообщение об ошибке
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)')
Я смотрел на на следующие должности и попытался изменить свой драйвер {SQL SERVER} и подсоединенного с помощью ODBC ссылки, прежде чем в SAS, что частично связано с моим вышеописанным кодом, поэтому не думайте, что мне нужно установить что-нибудь еще.
Pyodbc - "Data source name not found, and no default driver specified"
Благодаря
Спасибо за пояснения и код, который я получил водитель один работать. Хотя мне пришлось избавиться от .format (...) и поместите переменные в нужные места. Каким должен был быть формат? –
Вам необходимо установить 'adodbapi' для использования соединения OLEDB. И формат строки - это рекомендуемый способ передачи переменных в строку, а не с помощью оператора '+'. Кудрявые фигурные скобки с числами являются заполнителями, которые 'format()' заполняются соответствующим образом. Вы даже можете передавать списки и кортежи с помощью 'format()'. Ваш исходный код не разбивал строки и переменные кавычками, поэтому '+' считался частью строки. – Parfait
Хотя этот ответ велик и помог мне решить проблему. тот, кто пытается это сделать, помнит, что вы можете получить исключение, если вы установите доверенное соединение = да и введите UID/pwd в той же строке соединения. Это либо/или комбинация, и когда вы используете надежное соединение, ваши учетные данные NT/System используются для аутентификации, даже если вы явно указываете UID/PWD. – S4nd33p