我的Python代码:
import pyodbc
cnxn = pyodbc.connect('DRIVER=FreeTDS;DSN=S29;UID=test;PWD=test;TDS_Version=8.0;ClientCharset=UTF8')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
print row.user_id, row.user_name
获取错误:
Traceback (most recent call last):
File ".../test_mssql_connect.py", line 4, in <module>
cnxn = pyodbc.connect('DRIVER=FreeTDS;DSN=S29;UID=test;PWD=test;TDS_Version=8.0;ClientCharset=UTF8')
pyodbc.Error: ('HY000', '[] (20013) (SQLDriverConnect)')
我找不到相关信息,这是什么错误(&#39; HY000&#39;,&#39; [](20013)(SQLDriverConnect)&#39;)以及如何解决它。
同时通过 tsql , osql 和 isql 我成功连接到基地
我的 odbc.ini
[S29]
Driver=FreeTDS
Description=S29
ServerName=192.168.0.29
Database=test
UID=test
PWD=test
TDS_Version=8.0
我的 odbcinst.ini
[FreeTDS]
Description=FreeTDS
Driver=/usr/local/Cellar/freetds/0.95.1/lib/libtdsodbc.so
Setup=/usr/local/Cellar/freetds/0.95.1/lib/libtdsodbc.so
UsageCount=2
CPTimeout =
CPReuse =
TDS Version = 8.0
client charset = utf-8
我的 freetds.conf
[global]
tds version = 8.0
[192.168.0.29]
host = 192.168.0.29
port = 1433
tds version = 8.0
[S29]
host = 192.168.0.29
port = 1433
tds version = 8.0
答案 0 :(得分:0)
你的freetds.conf设置了什么?请注意,您很可能希望使用TDS版本7.3,但我不认为这是问题所在,尽管它可能是,因为它默认为TDS版本7.1。有关FreeTDS支持的TDS版本号的文档:
http://www.freetds.org/userguide/choosingtdsprotocol.htm
您可能必须提供端口号,但没有看到您的freetds.conf DSN设置,很难说。没有Python的DSN,我运气好了。由于8.0不是有效的TDS版本,我将为您提供适合我的完整示例:
freetds.conf:
[examplesql]
host = examplesql.server.com
port = 1433
tds version = 7.3
ODBC.INI:
[examplesql]
Driver = FreeTDS
Server = examplesql.server.com
Port = 1433
TDS_Version = 7.3
ODBCINST.INI:
[FreeTDS]
Description = FreeTDS with Protocol up to 7.3
Driver = /usr/lib64/libtdsodbc.so.0
pyodbc connect,DSN free:
DRIVER={FreeTDS};SERVER=examplesql.server.com;PORT=1433;DATABASE=dbname;UID=dbuser;PWD=dbpassword;TDS_Version=7.3;
您必须修改odbcinst.ini以指向您的司机所在的位置。一些注释:
请点击此处了解更多信息:
祝你好运。答案 1 :(得分:0)
我重新安装 pyodbc ,现在可以使用了。 我在这里下载https://github.com/juztin/pyodbc
ng-repeat