Я пытаюсь подключиться к базе данных SQL Server 2012 с помощью SQLAlchemy (с pyodbc) на Python 3.3 (Windows 7-64-bit). Я могу подключиться с помощью прямого pyodbc, но мне не удалось подключиться с помощью SQLAlchemy. У меня есть настройка файла dsn для доступа к базе данных.
Я успешно подключаюсь с помощью прямого pyodbc следующим образом:
con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')
Для sqlalchemy я пробовал:
import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')
Метод create_engine
на самом деле не устанавливает соединение и завершается успешно, но если я попробую что-то, что заставляет sqlalchemy фактически настроить соединение (например, engine.table_names()
), это займет некоторое время, но затем вернет эту ошибку:
DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None
Я не уверен, где что-то идет не так, как узнать, какая строка подключения фактически передается в pyodbc с помощью sqlalchemy. Я успешно использую одни и те же классы sqlalchemy с SQLite и MySQL.
Заранее спасибо!