[freetds] varchar column truncated on update

Frediano Ziglio freddy77 at gmail.com
Tue Nov 24 17:34:38 EST 2009


2009/11/24 James K. Lowden <jklowden at freetds.org>:
> Alan Humphrey wrote:
>>
>> I have a varchar(4000) column in a SQL Server 2005 database.  When I try
>> to update the column via DBD::Sybase it is truncated at 80 characters.
>
> We know ct-lib, which is what DBD::Sybase uses, handles character columns
> larger than 80 characters (cf. sqsh).
>
> Post a TDSDUMP log of your session.  It can also help if your route both
> TDSDUMP and DBI trace to stderr, and redirect stderr to a file, so that
> DBI and freetds logging are interspersed.
>
> I doubt Eric Marschner's reply fits your case because you're using
> DBD::Sybase.  The routine he modified supports parameterized TDS 7.0+
> queries, which aren't supported by ct-lib.
>

I think dynamic in ctlib will use parameterized TDS 7.0+. ODBC prepare
again if size is greater than previous prepare. varchar(max) is
supported by 7.2 which is still not enabled by default (for very good
reasons!) so server will use greatest varchar (which is
varchar(8000)).

freddy77



More information about the FreeTDS mailing list