2

我使用 pypy、pypyodbc 和 SQLAlchemy。我有 odbc 连接的问题。

我用:

engine = create_engine('mssql+pyodbc://dbuser:dbpasswd@localhost/dbname', echo = False)
Session = sessionmaker(bind=engine)

样式尝试连接数据库。

错误是:

C:\pypy\site-packages\sqlalchemy\connectors\pypyodbc.py:82: SAWarning: No driver
name specified; this is expected by PyODBC when using DSN-less connections
"No driver name specified; "

这个错误的原因,我找到了connect参数

 DRIVER={SQL Server Native Client}

不会传输到引擎,换句话说,我想知道如何为 SQLALchemy 的这种连接样式设置 DRIVER 字符串。

4

3 回答 3

1

我在使用 Sybase ASE 时遇到了同样的问题,在查看 pyodbc.py 源代码后,您可以在 url 中传递类似 GET 的参数。举个例子(为我工作):

sybase+pyodbc://username:password@hostname:5000/dbname?driver=Adaptive Server Enterprise

这里也有一些记录,连接字符串语法是dialect://user:password@host/dbname[?key=value..]

希望有帮助

于 2015-05-29T13:34:06.770 回答
0

您可能也一直在为更新 SqlAlchemy 版本而苦恼。从最新版本 (v1.0) 开始,您需要在 Microsoft SQL Server 的连接字符串中明确定义您的驱动程序。

请参阅: 在 1.0.0 版中更改:基于主机名的 PyODBC 连接现在需要明确指定的 SQL Server 驱动程序名称。SQLAlchemy 无法在此处选择最佳默认值,因为它因平台和安装的驱动程序而异。

http://docs.sqlalchemy.org/en/latest/dialects/mssql.html#hostname-connections

请参阅: 使用 SQLAlchemy 连接到数据库

于 2015-07-13T23:07:01.900 回答
0

我收到此错误消息并通过将其添加到连接字符串的末尾来修复它:

"?driver=SQL+Server+Native+Client+10.0"
于 2016-02-24T09:54:02.407 回答