Не удается установить соединение с SQL Server с использованием sqlalchemy - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь использовать Python для загрузки из фрейма данных Pandas в таблицу SQL Server, но не могу успешно создать соединение с использованием sqlalchemy. Я понимаю, что сначала мне нужно создать объект engine с помощью create_engine () и создать объект подключения с помощью engine.connect (), но никакая строка, которую я ввожу в create_engine (), похоже, не работает. Я пробовал следующее:

engine = create_engine('mssql+pyodbc://myServer/myDB')
conn = engine.connect()

и

engine = create_engine('mssql+pyodbc://Server=myServer;Database=myDB;')
conn = engine.connect()

и

engine = create_engine('mssql+pyodbc://Driver={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()

но все это приводит к следующей ошибке:

InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию (0) (SQLDriverConnect)')

Я также пробовал:

engine = create_engine('mssql+pyodbc://Driver={SQL Server Native Client 11.0};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()

, что приводит к следующей ошибке:

DBAPIError: (pyodbc.Error) ('IM010', '[IM010] [Microsoft] [Драйвер ODBC Manager] Слишком длинное имя источника данных (0) (SQLDriverConnect) ')

Хотя я могу успешно подключиться, используя pyodbc, вот так:

conn = pyodbc.connect('DRIVER={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')

Я не могу заставить эту работу работать с sqlalchemy.

Буду признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Решение:

engine = create_engine('mssql+pyodbc://ERRSTSDBP2/ActPri?driver=SQL+Server+Native+Client+11.0')

Спасибо Норбеку за то, что он проделал мне большую часть пути!

0 голосов
/ 19 марта 2019

Вы можете попробовать подключиться так:

engine = create_engine('mssql+pyodbc://user:password@host:port/myDB') conn = engine.connect()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...