使用FreeTDS查询MS SqlServer时,Python截断为255个字符

使用FreeTDS查询MS SqlServer时,Python截断为255个字符,python,pyodbc,freetds,Python,Pyodbc,Freetds,我想我在使用pyodbc对Debian机器上的FreeTDS进行python查询时遗漏了一些东西。我的字符数不能超过前255个字符 如果我尝试按如下所述转换SQL数据:使用: 从mytable中选择CAST(myText作为文本) 我得到的是空/零长度字符串 我还进行了测试,但没有成功:如下面的配置所述更改大小,我只获得前255个字符(例如,在我的Win box上,pyodbc可以获得279个字符) 以下是一个示例查询: SET TEXTSIZE 2147483647; SELECT [id],

我想我在使用pyodbc对Debian机器上的FreeTDS进行python查询时遗漏了一些东西。我的字符数不能超过前255个字符

如果我尝试按如下所述转换SQL数据:使用:
从mytable中选择CAST(myText作为文本)
我得到的是空/零长度字符串

我还进行了测试,但没有成功:如下面的配置所述更改大小,我只获得前255个字符(例如,在我的Win box上,pyodbc可以获得279个字符)

以下是一个示例查询:

SET TEXTSIZE 2147483647;
SELECT [id], myText , LEN(myText)
FROM    mytable
这是我的
/etc/freetds/freetds/conf
: (行的开头是什么意思?)

其他conf文件包括:

> cat /etc/odbc.ini #/etc/odbc.ini is empty! is it ok?
> cat /etc/odbcinst.ini
[FreeTDS]
Description=TDS driver (Sybase/MS SQL)
Driver=/usr/lib/odbc/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
CPTimeout=
CPReuse=
我的SQL server在
192.168.1.2
上,我通过以下方式连接:

cnstr = 'DRIVER={FreeTDS};SERVER=192.168.1.2;DATABASE=MyDBName;UID=MyUID;PWD=MYPASSWD'
cursor = cnxn.cursor()
cursor.execute(SQL)
# etc.
谢谢你的帮助

致意

这是什么意思;@开始排队

它开始评论man freetds.conf是你的朋友。:-)

我的字符数不能超过前255个字符

我怀疑您使用的是协议版本4.2,因为您使用的是无DSN连接,并且没有提到设置默认值。还因为TDS 4.2将VARCHAR列限制为255个字符

您可以将协议版本添加到连接字符串中,cf

cnstr = 'DRIVER={FreeTDS};SERVER=192.168.1.2;DATABASE=MyDBName;UID=MyUID;PWD=MYPASSWD'
cursor = cnxn.cursor()
cursor.execute(SQL)
# etc.