develooper Front page | perl.dbi.users | Postings from July 2006

Re: DBD::Informix on Solaris

From:
Jonathan Leffler
Date:
July 4, 2006 12:54
Subject:
Re: DBD::Informix on Solaris
Message ID:
844b8e1c0607041253r51a4bddbx4e8406b782247029@mail.gmail.com
On 7/4/06, Govinda.Pfister@telekom.de <Govinda.Pfister@telekom.de> wrote:

> I have a working informix environment with DBI and DBD::Informix. (see
> details for version, configuration below).
>
> I do have the problem that I cannot get the serial after a insert
> statement is executed.
> I always get '0' back. In the database each inserted record gets a unique
> number assigned.
>
> Why?



Answer 2...

Looking at the code in t/t10sqlca.t, there is code there that carefully
checks that the serial number stuff works.  So, first question, did you run
that test and did it pass?  I believe the answer to both will be yes, but
I'll ask anyway.

The other potentially significant detail is that the code in t/t10sqlca.t
tests $dbh->{ix_sqlerrd}[1] and not $sth->{ix_sqlerrd}[1] as in your code.
However, in your defense, the documentation in 'perldoc DBD::Informix'
clearly shows $sth->{ix_sqlerrd}[1] and not the $dbh version, though it says
you can get the information from either.  The QA suite does not appear to
validate that; however, the print_sqlca method (part of
DBD::Informix::TestHarness) is called with statement handles.  So, we should
validate that what is printed by print_sqlca and a statement handle matches
what is validated by the database handle.



The code is as follows:
> ----------------------------------------------------------
> [...]
>   else{
>    my $id = $sth->{ix_sqlerrd}[1];
> [...]
> ----------------------------------------------------------
>
> Bugreport-Info:
>
> perl -V
> ---------------------------------------
> Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
>   Platform:
>     osname=solaris, osvers=2.8, archname=sun4-solaris
>     uname='sunos solaris 5.8 generic_108528-11 sun4u sparc sunw,ultra-5_10
> '
>     config_args='-Dcc=gcc -B/usr/ccs/bin/'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
>     useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='gcc -B/usr/ccs/bin/', ccflags ='-fno-strict-aliasing -pipe
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
>     optimize='-O',
>     cppflags='-fno-strict-aliasing -pipe -I/usr/local/include'
>     ccversion='', gccversion='3.3.2', gccosandvers='solaris2.8'
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=8, prototype=define
> [...]
>



-- 
Jonathan Leffler <jonathan.leffler@gmail.com>  #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About