我正在尝试在 Python 3.3(Windows 7-64 位)上使用 SQLAlchemy(带有 pyodbc)连接到 SQL Server 2012 数据库。我可以使用直接 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
我不确定哪里出了问题,如何查看 sqlalchemy 实际将什么连接字符串传递给 pyodbc。我已经成功地将相同的 sqlalchemy 类与 SQLite 和 MySQL 一起使用。
提前致谢!