尝试连接到ms sql server时出现奇数utf 8错误

时间:2016-11-15 15:04:27

标签: python sql-server odbc

连接字符串设置如下:

# -*- 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

1 个答案:

答案 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的安全性节点中进行设置。右键单击用户,然后转到“用户映射”。检查相应的数据库,确保突出显示数据库,然后在底部设置数据库角色。