连接字符串设置如下:
# -*- coding: utf-8 -*-
import pypyodbc
connection = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='uname';PWD='pwd';DATABASE='mydb'")
收到以下错误:
UnicodeDecodeError: 'utf-32-le' codec can't decode bytes in position 0-1: truncated data
答案 0 :(得分:0)
需要仔细检查的是,在odbc.ini文件中,该部分的ServerName与freetds.conf文件中的名称相同。
例如:
ODBC.INI
[old_flood]
Driver = FreeTDS
Description = RTS Old Flood
ServerName = old_flood <----- this must be the same as the name in
freetds.conf
freetds.conf
[old_flood] <----- This is the same as the ServerName above
host = <server ip address>
port = <server port>
tds version = 8.0
您还需要确保您创建的数据库用户具有对您尝试读取/写入的数据库的正确访问权限。对我来说,我只需要读访问权限。您可以在SQL Server Management Studio的安全性节点中进行设置。右键单击用户,然后转到“用户映射”。检查相应的数据库,确保突出显示数据库,然后在底部设置数据库角色。