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."