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, except that the fetch_rowarray() stops when a row with a column with more than 26 characters. Once we set $dbh->{LongTruncOk} = 1; the fetch_rowarray processes all rows, but all columns are truncated to 26 chars. While we didn't think it relevant, 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 lenght 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 Brio, we get no problems. We turned ODBC tracing and found that the connection and the select processing look different, 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