[python-sybase] varchar(350) data getting truncated to 255
characters (final resolution)
Python
python at venix.com
Sun Sep 24 01:15:12 EST 2006
On Sat, 2006-09-23 at 09:50 -0400, Python wrote:
> On Fri, 2006-09-22 at 16:02 -0400, Python wrote:
> > I am running Linux (Fedora 3) with
> > sybase 0.37
> > freetds 0.63
> > to collect data from a remote Microsoft SQL server. There is at least
> > one field that is truncated to 255 characters as I read it:
> > (curs.fetchone())
> >
> > The curs.description shows:
> > ('Features', 1, 0, 255, 0, 0, 1)
> > ('Remarks', 1, 0, 255, 0, 0, 1)
> >
> > However, those fields are actually defined as varchar(350).
> >
> > Is this a limitation in the modules? Am I doing something wrong?
>
> I tracked down the issue to freetds. It limits varchar fields to 255
> chars. The freetds site recommends converting or casting the fields to
> text.
>
> http://www.freetds.org/userguide/troubleshooting.htm#KNOWNISSUES
> has the details.
>
> > Should I be using a different set of modules to connect a Python program
> > to a remote Microsoft SQL server?
By configuring a server into the /etc/freetds.conf file, I was able to
specify a different protocol version and the varchar sizes are now
reported properly. In summary, I did not use the CAST(column AS TEXT)
advice, but instead added a server definition to the freetds.conf file
using the following as a model.
# A typical Microsoft SQL Server 2000 configuration
;[MyServer2k]
; host = ntmachine.domain.com
; port = 1433
; tds version = 8.0
--
Lloyd Kvam
Venix Corp
More information about the Python-sybase
mailing list