查询时pymssql 1.9.908错误

时间:2012-02-29 08:28:12

标签: python pymssql

我在windows 2k3 x64上使用pymssql 1.9.908时遇到问题。     我使用以下代码来测试一个简单的查询。但是我收到了这个错误:

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    cur.execute('SELECT * from tbl_staticDetails')
  File "pymssql.pyx", line 296, in pymssql.Cursor.execute (pymssql.c:3246)
OperationalError: SQL Server message 4004, severity 16, state 1, line 1:
Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.
DB-Lib error message 4004, severity 16:
General SQL Server error: Check messages from the SQL Server

这是我在IDLE中输入的示例代码:

>>> import pymssql
>>> conn = pymssql.connect(host='<IP reachable by my machine>', user='sa', password='<password>', database='<database nbame>')
>>> cur = conn.cursor()
>>> cur.execute('SELECT * from tbl_staticDetails')

非常感谢任何想法。 非常感谢!

1 个答案:

答案 0 :(得分:0)

请参阅http://pymssql.sourceforge.net/faq.php

  

在SQL 2000 SP4或更高版本,SQL 2005或SQL 2008中,如果您执行查询   返回NTEXT类型数据,您可能会遇到以下异常:   _mssql.MssqlDatabaseError:SQL Server消息4004,严重级16,状态1,第1行:仅Unicode归类或ntext数据中的Unicode数据   无法使用DB-Library(如ISQL)或ODBC发送给客户端   版本3.7或更早版本。

     

这意味着SQL Server无法将Unicode数据发送到pymssql,   由于DB-Library for C的缺点,你必须CAST或   将数据转换为等效的NVARCHAR数据类型,而不是   表现出这种行为。