我使用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字符串。
答案 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
答案 2 :(得分:0)
我收到此错误消息并通过将其添加到连接字符串的末尾来修复它:
"?driver=SQL+Server+Native+Client+10.0"