这是我的简单测试脚本。只是想做一个基本的select语句。找到了教程中的基本部分。
from sqlalchemy import *
db = create_engine('mssql+pyodbc://user:pass@ip_address/database_name')
db.echo = True
metadata = MetaData(db)
users = Table('member', metadata, autoload=True)
def run(stmt):
rs = stmt.execute()
for row in rs:
print row
s = users.select(users.c.fname == 'Bill')
run(s)
经过一个小时的寻找和尝试一些解决方案,我并不比开始时更接近解决它。希望我只是在某个地方犯了个简单的错误,但我找不到。。。
这是我得到的错误
sqlalchemy.exc.DBAPIError: (Error) ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)') None None
任何帮助都将不胜感激!
如果在URL中没有指定,
mssql+pyodbc
方言的默认驱动程序将是“SQL Server”[1]。这意味着您需要在/etc/unixODBC/odbcinst.ini中有这样一个部分:它在Windows上“自动”工作,因为如果打开Administrator Tools->;数据源(ODBC),您很可能会在Drivers选项卡下找到一个名为“SQL Server”的条目。
在Linux上,您可以使用FreeTDS驱动程序,也可以使用Microsoft的官方驱动程序(我建议您这样做)。
安装驱动程序后,在/etc/unixODBC/odbcinst.ini中应该有类似的内容:
然后,您只需向URL添加一个
driver
查询字符串参数,其值与节名匹配。具有FreeTDS的示例URL:
带有官方驱动程序的示例URL:
[1]https://bitbucket.org/sqlalchemy/sqlalchemy/src/aa3a8f016f3e4396d125b18b0510abdf72aa8af2/lib/sqlalchemy/dialects/mssql/pyodbc.py?at=default#cl-236
您收到的错误可能表示没有名为IM002的DSN设置。您是否尝试直接测试ODBC连接以验证其安装是否正确?是否安装了适当的Microsoft SQL Server数据库驱动程序?
相关问题 更多 >
编程相关推荐