Denis BUCHER wrote:
> Hello everyone,
> 
> Some precisions to my previous email...
> 
>> I'm trying to simply do a SELECT from an ODBC source.
>> It works perfectly in PHP but not in perl !
>> Therefore there is no problem at source or at ODBC level, it seems to
>> reside at perl/DBI level...
>>
>> What I do :
>>> use DBI;
>>> $dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or...
>>> $sth = $dbh->prepare($sql) or die...
>>> $sth->execute or die...
>>> do {
>>>         my @row;
>>>         my $line=1;
>>>         # fetch each row in array
>>>         while (@row = $sth->fetchrow_array())
>>>         {
>>>                 print ($line + 1);
>>>                 print ". ";
>>>                 # print each field in a row
>>>                 for ($i=0;$i<$#row;$i++)
>>>                 {
>>>                         print $row[$i]
>>>                 };
>>>                 print "\n";
>>>                 $line++;
>>>         }
>>>         # see if there's more records to show
>>> } while ($sth->{odbc_more_results});
>>
>> But even if my script is working, most of the time (not always but 80%
>> of time ???) I get this error :
>>
>> DBD::ODBC::st fetchrow_array failed: [unixODBC][IBM][System i Access
>> ODBC Driver]Column 1: CWB0111 - A buffer passed to a system call is too
>> small to hold return data (SQL-22018) [state was 22018 now 01004]
>>
>> [unixODBC][IBM][System i Access ODBC Driver]String data right
>> truncation. (SQL-01004) at ./odbcdemo-perl.pl line n.
> 
> I must add an important point, I received 47 rows out of the 126 expected
> 
>> I'm not an ODBC expert, not a DBI expert, therefore I'm maybe forgetting
>> something important to be done, but I don't find anything on the web
>> that helped me...
>>
>> Last idea, could it be due to UTF8, which would create difference in
>> string sizes ?
>>
>> I found a similar bug in PHP :
>> http://www-01.ibm.com/support/docview.wss?uid=nas1ac5658703ae5a78b862575440052cbda
>>
>> And a thread about my problem but without solution :
>> http://www.ibm.com/developerworks/forums/thread.jspa?threadID=185874&tstart=45
>>
>> But I don't understand DBI enough to understand what I should do ?
>>
>> Thanks a lot for any help !
> 
> Denis
> 
> 

Take a look at the DBI attribute LongReadLen.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to