0

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')

どんなアイデアでも大歓迎です。どうもありがとう!

4

1 に答える 1

0

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 以前を使用してクライアントに送信できません。

これは、C の DB-Library の欠点により、SQL Server が pymssql に Unicode データを送信できないことを意味します。データを同等の NVARCHAR データ型にキャストまたは変換する必要がありますが、これはこの動作を示しません。

于 2012-02-29T09:19:18.727 に答える