SQLAlchemy orm样式,如何对您的连接字符串进行特殊驱动

时间:2015-05-04 08:13:22

标签: python sqlalchemy driver pypy pypyodbc

我使用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; "

出现此错误的原因,我找到了连接参数

 DRIVER={SQL Server Native Client}

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

3 个答案:

答案 0 :(得分:1)

我遇到了与Sybase ASE相同的问题,在查看pyodbc.py源代码后,您可以在网址中传递类似GET的参数。作为一个例子(为我工作):

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

它还有一些文档here,其连接字符串语法为dialect://user:password@host/dbname[?key=value..]

希望有所帮助

答案 1 :(得分: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

请参阅: Connecting to database using SQLAlchemy

答案 2 :(得分:0)

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

"?driver=SQL+Server+Native+Client+10.0"