我想在Python 3.3(Windows 7-64位)上使用SQLAlchemy(使用pyodbc)连接到SQL Server 2012数据库。我能够使用直接pyodbc连接,但在使用SQLAlchemy进行连接时不成功。我有用于数据库访问的dsn文件设置。使用sqlalchemy和pyodbc连接到SQL Server 2012
我成功地连接使用直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类。
在此先感谢!
谢谢。 SQL Server实例是唯一不在我正在工作的计算机上的实例,所以我不确定这里是否有有趣的事情发生。只是为了扩大一点你列出的刺激(因为sql服务器实例明显命名) - 'sa.create_engine('mssql + pyodbc:// [机器名] \\ [服务器名]/[数据库]')' –
不必命名。连接并使用配置为“默认实例”的sql server实例更容易。当您将在一台服务器上托管多个SQL Server实例时,需要命名实例。 – marr75