【发布时间】:2013-03-22 22:57:14
【问题描述】:
我正在尝试在 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 方法实际上并没有建立连接并成功,但是
i如果我尝试一些导致 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。我已经成功地在 SQLite 和 MySQL 中使用了相同的 sqlalchemy 类。
提前致谢!
【问题讨论】:
-
我发现 SQLAlchemy 文档在这个主题上严重不足。有必要进行改进。
标签: python sql-server sqlalchemy pyodbc