无法从Pyodb连接到SQL Server数据库

2024-10-16 17:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难在Linux上使用pyodbc连接到sqlserverdb。我创建了一个ODCINI文件条目。我从这个开始:

import pyodbc

conn = pyodbc.connect('DSN=DSN;Database=DB;UID=UID;PWD=PWD')

cursor = conn.cursor()
cursor.execute('SELECT count(*) FROM dbo.tableA')
for row in cursor.fetchall():
    print(row)

会引发以下错误:

^{pr2}$

我在谷歌上搜索了这个错误,并在阅读了一些建议后添加了这一行:

pyodbc.pooling=False

所以脚本改为:

import pyodbc

pyodbc.pooling=False

conn = pyodbc.connect('DSN=DSN;Database=DB;UID=UID;PWD=PWD')

cursor = conn.cursor()
cursor.execute('SELECT count(*) FROM dbo.tableA')
for row in cursor.fetchall():
    print(row)

结果是:

pyodbc.InterfaceError: ('IM003', '[IM003] 䑛瑡䑡物捥嵴佛䉄⁃楬嵢匠数楣楦摥搠楲敶\u2072潣汵\u2064潮⁴敢氠慯敤d\uffff\uffff㢸ꔻ罱\x00\ue5b8鮫罱\x00㳰ꔻ罱\x00\uffff\uffff罱\x00\x00\x00\x00\x00鳭ꕞ罱\x00塰ꕉ罱 (0) (SQLDriverConnect)')

在同事的建议下,我在pyodbc.connect线路:

conn.setdecoding(pyodbc.SQL_CHAR, encoding='latin1', to=str)
conn.setencoding(str, encoding='latin1')

我用拉丁语和utf-8试过了。两个都没有用,还是用汉字抛出同样的界面错误。在

有什么想法吗?在


Tags: importexecutedbuidconnect错误pwdconn