Я пытаюсь переключить соединение pyodbc на sqlalchemy.Рабочее соединение pyodbc:
import pyodbc
con = 'DRIVER={ODBC Driver 11 for SQL Server};SERVER=server.com\pro;DATABASE=DBase;Trusted_Connection=yes'
cnxn = pyodbc.connect(con)
cursor = cnxn.cursor()
query = "Select * from table"
cursor.execute(query)
Я пытался:
from sqlalchemy import create_engine
dns = 'mssql+pyodbc://server.com\pro/DBase?driver=SQL+Server'
engine = create_engine(dns)
engine.execute('Select * from table').fetchall()
На основе: http://docs.sqlalchemy.org/en/latest/core/engines.html
и: pandas.read_sql() НАМНОГО медленнее при использовании SQLAlchemy, чем pyodbc
(при попытке установить соединение с Trusted_Connection = Да)
Но я получаю сообщение:
OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] Нет существующего сервопривода SQL Server или нет. (17) (SQLDriverConnect); [08001] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] ConnectionOpen (Connect ()). (53) ') (Справочная информация об этой ошибке: http://sqlalche.me/e/e3q8) (извините за испанский, но он говорит, чтоSQL Server не существует)
Я почти уверен, что это связано со мной, не понимая синтаксис для подключения к двигателю. Может кто-нибудь, пожалуйста, объясните мне подробно, как преобразовать соединение изpyodbc to sqlalchemy?
Заранее спасибо!
PD: я пытаюсь реализовать sqlalchemy для использования позже в моем коде pandas.DataFrame.to_sql(engine)