python - 使用 ODBC 时出现无法读取数据库错误

标签 python sql-server odbc pyodbc freetds

我正在使用 pypyodbc 和 FreeTDS 连接到 SQL Server 2008。我偶尔会收到错误,但我无法读取错误消息。我已经尝试从 UTF-8 解码该字符串,但它仍然难以辨认。有谁知道我如何获得人类可读的错误消息?

这是我的连接字符串:

conn = pypyodbc.connect('DRIVER=FreeTDS;SERVER=myserver;PORT=1433;DATABASE=mydb;UID=myuid;PWD=mypw;CHARSET=UTF-8;TDS_Version=8.0;', unicode_results=True)

这是错误消息:

pypyodbc.DatabaseError: (u'\u3130\u30300', u'[\u3130\u30300] \u755b\u696e\u4f78\u4244\u5d43\u445b\u6972\u6576\u2072\u614d\u616e\u6567\u5d72\u6143\u276e\u2074\u706f\u6e65\u6c20\u6269\u2720\u752f\u7273\u6c2f\u6269\u782f\u3638\u365f\u2d34\u696c\u756e\u2d78\u6e67\u2f75\u646f\u6362\u6c2f\u6269\u6474\u6f73\u6264\u2e63\u6f73\u2027\u203a\u6966\u656c\u6e20\u746f\u6620\u756f\u646e')

最佳答案

事实证明,错误字符串以 UTF-16 形式存储在 unicode 对象中。对错误字符串调用encode('utf-16LE') 给了我一个可读的字符串。

关于python - 使用 ODBC 时出现无法读取数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866338/

相关文章:

python - 无法将所有文件移动到新文件夹

sql-server - 如何获取表存储信息

sql - 使用 ODBC 的 Dapper WHERE IN 语句

python - 雄蕊地形图在 Cartopy 中不起作用

python - 如何知道数组和字典等python对象的字节大小? - 简单的方法

python - 有没有办法在Python中为日志记录模块配置缓冲区

sql-server - 在Microsoft Access 2003 ade文件中更改与SQL Server的连接

sql-server - 为什么我会收到错误 "Cannot drop the database ' test' 因为它正在用于复制。错误 : 3724"?

java - 从 java 连接到 MS Access

mysql - 经典 ASP、MySQL 或 ODBC UTF8 编码