William has asked for the wisdom of the Perl Monks concerning the following question:

Hello everyone,

I'm using Perl 5.6.1, DBI-1.30, DBD-Sybase-0.94, Nightly Snapshot of FreeTDS, RH 7.3.

In perl I do:

$rows = $sth->dump_results;

and the output is:

DBI:Sybase:database=staff SELECT NAME FROM STAFF 'Admin............................' 'JAlvarez.........................' 'Rosa.rez.........................' 3 rows

The column NAME in STAFF is defined as VARCHAR(40)

The values returned from the query all have a null character attached to the end of the field value plus extra characters from the previous row.

I was expecting:

'Admin' 'JAlvarez' 'Rosa'

To get what I expected I clean up the query results by stripping everything after the first null.

The same query with Perl 5.6.0, DBI-1.16, DBD-Sybase-0.91, Nightly Snapshot of FreeTDS-0.52, RH 7.1 worked as expected.

Why are my query results different with the new versions?

Thanks in advance,

William

Replies are listed 'Best First'.
Re: Nulls in Query Results using DBD-Sybase and FreeTDS
by mpeppler (Vicar) on Oct 23, 2002 at 17:13 UTC
    Probably a bug in the FreeTDS implementation of ct_bind(), and in the way that it handles the CS_FMT_UNUSED property.

    I'd take this up on the FreeTDS mailing list.

    Michael