Roger,
Which version of DBD::ODBC are you using?
Regards,
Jeff
> We are trying to use Perl/DBI running on W2K to access UniVerse
> data stored on an AIX machine. We are using the UV ODBC drivers
> and have created a DSN to access the UniVerse data. We have no
> problem connecting to the database or running queries via
> perl/dbi, except that the fetchrow_array() stops when it reaches
> a row with a column with more than 26 characters. Once we set
> $dbh->{LongTruncOk} = 1; the fetchrow_array() processes all rows,
> but all columns are truncated to 26 chars. While we didn't think
> it relevant (the columns appear as varchar(255), not blobs or
> text), we set the $dbh->{LongReadLen} = 256 and found no change in effect.
>
> With the dbi trace on we find that once the select is processed
> there are 2 sets of definition for the columns, the columns are
> correctly defined as varchars with a length of 254, but they have
> a second definition with a maxlen = 26 (dbi trace below):
>
> dbd_describe sql 31661464: num_fields=3
> col 1: VARCHAR len=254 disp= 26, prec=254 scale=0
> col 2: VARCHAR len=254 disp= 26, prec=254 scale=0
> col 3: VARCHAR len=254 disp= 26, prec=254 scale=0
> col 1: 'ADDR1' sqltype=VARCHAR, ctype=SQL_C_CHAR, maxlen=26
> col 2: 'MAIL_ADDR1' sqltype=VARCHAR, ctype=SQL_C_CHAR, maxlen=26
> col 3: 'MAIL_CSZ' sqltype=VARCHAR, ctype=SQL_C_CHAR, maxlen=26
>
> Using the same ODBC DSN and running queries using the BrioQuery
> tool, we get no problems. We turned ODBC tracing and found that
> the connection and the select processing look different in the
> ODBC logs, via Brio there is no 2nd column definition with the
> maxlen=26 restriction.
>
> We assume Perl/DBI is getting the maxlen from the UniVerse
> database but don't know how to fix the problem.
>
> Thanks in advance for any help.
>
> Regards,
> Roger
>
>