On 9/27/07, Clive Eisen <[EMAIL PROTECTED]> wrote: > I seem to have a problem with negative int8 on a 64 bit linux platform > > dbaccess gives the correct answer but DBD::Informix does not > > [EMAIL PROTECTED]:~> oninit -V > IBM Informix Dynamic Server Version 10.00.FC6 > > [EMAIL PROTECTED]:~> esql -V > IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1 > > [EMAIL PROTECTED]:~> perl -v > > This is perl, v5.8.8 built for x86_64-linux > > [EMAIL PROTECTED]:~> perl -MDBI -e 'print "$DBI::VERSION\n"' > 1.53 > > [EMAIL PROTECTED]:~> perl -MDBD::Informix -e 'print > "$DBD::Informix::VERSION\n"' > 2007.0914 > > [EMAIL PROTECTED]:~> echo 'select pings_remaining from ping_count' | > dbaccess master_118 > > Database selected. > > > > pings_remaining > > -256512 > > > > [EMAIL PROTECTED]:~> cat test.pl > #!/usr/local/bin/perl > use DBI; > > my $database="[EMAIL PROTECTED]"; > my $dbh = DBI->connect("dbi:Informix:$database", '', '', > { AutoCommit => 1, PrintError => 1 > ,PrintWarn => 1}); > $sth=$dbh->prepare(qq(select pings_remaining from ping_count)); > $sth->execute; > ($pings_remaining) = $sth->fetchrow_array; > print "pings_remaining = $pings_remaining\n"; > > [EMAIL PROTECTED]:~> perl test.pl > pings_remaining = 4294710784 > > > Any help gratefully received
Dear Clive, Unfortunately (for you - fortunately for me), Perl 5.8.8 with 64-bit CSDK 3.00.FC2 on Solaris 10 correctly produces the negative answer. That means that to some extent, the problem is platform specific. I'll try to build DBD::Informix with CSDK 2.90.FC1 later - I have to rig the build environment on my machine to do that. It might be CSDK 2.90 vs 3.00; it might be Linux x86 vs Solaris SPARC. -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2007.0914 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused."