Ошибка pymssql 1.9.908 при запросе - PullRequest
0 голосов
/ 29 февраля 2012

У меня проблемы с использованием pymssql 1.9.908 на моем windows 2k3 x64.Я использовал приведенные ниже коды для проверки простого запроса.Однако я получаю эту ошибку:

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 голосов
/ 29 февраля 2012

См. http://pymssql.sourceforge.net/faq.php:

В SQL 2000 SP4 или новее, SQL 2005 или SQL 2008, если вы выполняете запрос, который возвращает данные типа NTEXT, вы можете столкнуться со следующим исключением: _mssql.MssqlDatabaseError: Сообщение SQL Server 4004, уровень серьезности 16, состояние 1, строка 1: данные Unicode в сопоставлении только для Unicode или данные ntext не могут быть отправлены клиентам с использованием DB-Library (например, ISQL) или ODBC версии 3.7 или более ранних версий.

Это означает, что SQL Server не может отправить данные Unicode в pymssql из-за недостатков DB-Library для C. Вы должны CAST или CONVERT данных в эквивалентный тип данных NVARCHAR, который не демонстрирует это поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...