On 7/5/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

 Hallo Johnathan,

thanks again for your help :-)

Concerning the configuration of my system your are absolutely right. I
just copied the information from my last mail - but meanwhile the
configuration changed a bit.
And I also added the output of make test at the end of the configuration
details below.



The output isn't entirely desirable, but could be cleaned up.  Clearly, I
omitted Test::Pod from the pre-requisites, so it wasn't there when it was
needed.  The other problems relate to your IDS  setup; you don't have a
smart blob space called sbspace.  The README does document how to get around
that, in conjunction with Notes/environment.variables.

And yes the datatype for the id collumn is Serial8. Why will this account
for the problem?


Because $sth->{ix_sqlerrd}[1] is an INTEGER (equivalent to SERIAL -
effectively SERIAL4) value.

There is a separate function in ESQL/C for retrieving the last allocated
SERIAL8 value.

Offhand, I don't recall whether DBD::Informix exposes that function.  If it
doesn't, it probably should.  And DBI provides hooks for it to do that - but
DBD::Informix hasn't been upgraded since the hooks were added around DBI
v1.35 to take advantage of them.



Govinda



The configuration is now as follows:

perl -V
--------------------------
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:

  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos localhost 5.8 sun4u sparc sunw,ultra-1 '
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-xO3 -xdepend', gccversion=
    cppflags=''
    ccflags =''
    stdchar='char', d_stdstdio=define, usevfork=false

    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =''
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R
/usr/perl5/5.00503/sun4-solaris/CORE'
    cccdlflags='-KPIC', lddlflags='-G'
--------------------------

Characteristics of this binary (from libperl):
  Built under solaris
  Compiled at Dec 22 1999 00:00:57
  @INC:
    /usr/perl5/5.00503/sun4-solaris
    /usr/perl5/5.00503
    /usr/perl5/site_perl/5.005/sun4-solaris
    /usr/perl5/site_perl/5.005


 esql -V
--------------------------
IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.UC4

Software Serial Number AAA#B000000

--------------------------

dbaccess -V
--------------------------
DB-Access Version 9.30.FC3
Software Serial Number AAD#J341595
--------------------------



This is the output of "make test":
--------------------------
/usr/local/bin/perl5.8.7 Makefile.PL --config=make_args,--hello
--installdeps=Test::Pod,0
*** ExtUtils::AutoInstall version 0.63
*** Checking for dependencies...
[Core Features]
- DBI         ...loaded. (1.51 >= 1.38)
[High Resolution Timing]
- Time::HiRes ...loaded. (1.66)
[POD Format Testing]
- Test::Pod   ...missing.
==> Auto-install the 1 optional module(s) from CPAN? [y]
*** Dependencies will be installed the next time you type 'make'.
    (You may need to do that as the 'root' user.)
*** ExtUtils::AutoInstall configuration finished.
Subroutine main::WriteMakefile redefined at
/usr/local/lib/perl5/site_perl/5.8.7/ExtUtils/AutoInstall.pm line 491.

Configuring IBM Informix Database Driver for Perl DBI Version 
2005.02(2005-07-29) (aka DBD::Informix)
        You are using DBI version 1.51 and Perl version 5.008007
Remember to actually read the README file!

Perl:     perl v5.008007 sun4-solaris dl_dlopen.xs
System:   sunos solaris 5.8 generic_108528-11 sun4u sparc sunw,ultra-5_10
Using INFORMIXDIR=/opt/IBM/informix and ESQL/C compiler esql
Using IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.UC4from 
/opt/IBM/informix

Beware: DBD::Informix is not yet aware of all the new IUS data types.

Assert macro will be disabled!

lib/DBD/Informix/Defaults.pm written OK
esqlvrsn.h written OK
esqlinfo.h written OK

Testing whether your Informix test environment will work...
ESQLTEST Program Running:
@(#)$Id: esqltest.ec,v 2004.1 2004/11/16 22:29:43 jleffler Exp $
        $INFORMIXDIR is set to '/opt/IBM/informix'.
        $INFORMIXSERVER is set to 'arses5530'.
        $DBI_DBNAME unset - defaulting to 'stores'.
        $DBD_INFORMIX_DATABASE set to '[EMAIL PROTECTED]'<[EMAIL PROTECTED]>
.
        $DBD_INFORMIX_DATABASE2 unset - defaulting to
'[EMAIL PROTECTED]' <[EMAIL PROTECTED]>.
        $DBD_INFORMIX_USERNAME is set to 'aradmin'.
        $DBD_INFORMIX_USERNAME2 is unset - defaulting to 'aradmin'.
        $DBD_INFORMIX_PASSWORD is set.
        $DBD_INFORMIX_PASSWORD2 is unset - defaulting to
$DBD_INFORMIX_PASSWORD.
Testing connection to [EMAIL PROTECTED]
        CONNECT TO '[EMAIL PROTECTED]'<[EMAIL PROTECTED]>with user info
Testing concurrent connection to [EMAIL PROTECTED]
        CONNECT TO '[EMAIL PROTECTED]'<[EMAIL PROTECTED]>with user info
Your Informix environment is (probably) OK

Using DBI 1.51 (for perl 5.008007 on sun4-solaris) installed in
/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI/
Writing Makefile for DBD::Informix
Skip blib/lib/DBD/Informix/Summary.pm (unchanged)
Skip blib/lib/DBD/Informix/TechSupport.pm (unchanged)
Skip blib/lib/DBD/Informix/GetInfo.pm (unchanged)
Skip blib/lib/Bundle/DBD/Informix.pm (unchanged)
Skip blib/lib/DBD/Informix/Configure.pm (unchanged)
Skip blib/lib/DBD/Informix.pm (unchanged)
Skip blib/lib/DBD/Informix/TestHarness.pm (unchanged)
Skip blib/lib/DBD/Informix/TypeInfo.pm (unchanged)
Skip blib/lib/DBD/Informix/Defaults.pm (unchanged)
Skip blib/lib/DBD/Informix/Metadata.pm (unchanged)
/usr/local/bin/perl5.8.7 /usr/local/lib/perl5/5.8.7/ExtUtils/xsubpp
-typemap /usr/local/lib/perl5/5.8.7/ExtUtils/typemap Informix.xs >
Informix.xsc && mv Informix.xsc Informix.c
gcc -B/usr/ccs/bin/ -c  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC "-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE"
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC Informix.c
gcc -B/usr/ccs/bin/ -c  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC "-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE"
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC sqltoken.c
gcc -B/usr/ccs/bin/ -c  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC "-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE"
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC odbctype.c
gcc -B/usr/ccs/bin/ -c  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC "-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE"
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC kludge.c
gcc -B/usr/ccs/bin/ -c  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC "-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE"
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC link.c
INFORMIXC="/usr/local/bin/perl5.8.7 esqlcc" ESQLCC="gcc -B/usr/ccs/bin/"
esql -c -shared  -I/opt/IBM/informix/incl/esql
-I/usr/local/lib/perl5/5.8.7/sun4-solaris/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI -I/auto/DBI
-I/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O     -DVERSION=\"2005.02\"  -DXS_VERSION=\"
2005.02\" -fPIC -I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE
-DESQLC_VERSION=290 -DNDEBUG -DUSE_REAL_MALLOC esqlc_v6.ec
rm -f esqlc_v6.c
rm -f blib/arch/auto/DBD/Informix/Informix.so
LD_RUN_PATH="" INFORMIXC='/usr/local/bin/perl5.8.7 esqlld' ESQLLD='gcc
-B/usr/ccs/bin/ -G -L/usr/local/lib' esql  -G -L/usr/local/lib Informix.o
dbdimp.o dbdattr.o describe.o sqltoken.o sqltype.o ixblob.o odbctype.o
kludge.o link.o esqlcver.o esqlc_v6.o -R/opt/IBM/informix/lib
-R/opt/IBM/informix/lib/esql -o blib/arch/auto/DBD/Informix/Informix.so
chmod 755 blib/arch/auto/DBD/Informix/Informix.so
PERL_DL_NONLAZY=1 /usr/local/bin/perl5.8.7 "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/t00basic.t t/t01stproc.t
t/t02ixtype.t t/t05dbase.t t/t07dblist.t t/t08fork.t t/t09exec.t
t/t10sqlca.t t/t12bindval.t t/t13bindref.t t/t14bindcol.t t/t15bindtyp.t
t/t20error.t t/t21mconn.t t/t22mconn.t t/t23mconn.t t/t24mcurs.t
t/t25dratt.t t/t28dtlit.t t/t29update.t t/t30update.t t/t31nulls.t
t/t32nulls.t t/t33holdcurs.t t/t35cursor.t t/t40rows.t t/t41txacoff.t
t/t42txacon.t t/t43trans.t t/t44txansi.t t/t46chpblk.t t/t50update.t
t/t51getinfo.t t/t53types.t t/t54native.t t/t55mdata.t t/t56tabinfo.t
t/t57tables.t t/t58typeinfoall.t t/t60unlog.t t/t65updcur.t t/t66insert.t
t/t72blob.t t/t73blobupd.t t/t74blob.t t/t75blob.t t/t76blob.t t/t90ius.t
t/t91udts.t t/t92rows.t t/t93lvarchar.t t/t94bool.t t/t95int8.t t/t98pod.t
t/t99clean.t
t/t00basic..........ok
t/t01stproc.........ok
t/t02ixtype.........ok
t/t05dbase..........ok
t/t07dblist.........ok
t/t08fork...........ok
t/t09exec...........ok
t/t10sqlca..........ok
t/t12bindval........ok
t/t13bindref........skipped
        all skipped: bind_param_inout not supported by DBD::Informix
t/t14bindcol........ok
t/t15bindtyp........ok
t/t20error..........ok
t/t21mconn..........ok
t/t22mconn..........ok
t/t23mconn..........ok
t/t24mcurs..........ok
t/t25dratt..........ok
t/t28dtlit..........ok
t/t29update.........ok
t/t30update.........ok
t/t31nulls..........ok
t/t32nulls..........ok
t/t33holdcurs.......ok
t/t35cursor.........ok
t/t40rows...........ok
t/t41txacoff........ok
t/t42txacon.........ok
t/t43trans..........ok
t/t44txansi.........skipped
        all skipped: MODE ANSI test - database '[EMAIL PROTECTED]'<[EMAIL 
PROTECTED]>is not MODE ANSI
t/t46chpblk.........ok
t/t50update.........skipped
        all skipped: MODE ANSI test - database '[EMAIL PROTECTED]'<[EMAIL 
PROTECTED]>is not MODE ANSI
t/t51getinfo........ok
t/t53types..........ok
t/t54native.........ok
t/t55mdata..........ok
t/t56tabinfo........ok
t/t57tables.........ok
t/t58typeinfoall....ok
t/t60unlog..........ok
t/t65updcur.........ok
t/t66insert.........ok
t/t72blob...........ok
t/t73blobupd........ok
t/t74blob...........ok
t/t75blob...........ok
t/t76blob...........ok
t/t90ius............ok
t/t91udts...........ok 1/16DBD::Informix::db do failed: SQL: -9820:
Sbspace (sbspace) does not exist. at /users/es5530/aradmin/govinda/DBD-
Informix-2005.02/blib/lib/DBD/Informix/TestHarness.pm line 347.
t/t91udts...........NOK 6DBD::Informix::db do failed: SQL: -206: The
specified table (dbd_ix_udts) is not in the database.
ISAM: -111: ISAM error:  no record found. at
/users/es5530/aradmin/govinda/DBD-Informix-2005.02/blib/lib/DBD/Informix/TestHarness.pm
line 347.
t/t91udts...........NOK 7DBD::Informix::db prepare failed: SQL: -206: The
specified table (dbd_ix_udts) is not in the database.
ISAM: -111: ISAM error:  no record found. at t/t91udts.t line 94.
Can't call method "execute" on an undefined value at t/t91udts.t line 105.
t/t91udts...........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 6-7, 9-16
        Failed 10/16 tests, 37.50% okay
t/t92rows...........ok
t/t93lvarchar.......ok
t/t94bool...........ok
t/t95int8...........ok
t/t98pod............Can't locate Test/Pod.pm in @INC (@INC contains:
/users/es5530/aradmin/govinda/DBD-Informix-2005.02/blib/lib
/users/es5530/aradmin/govinda/DBD-Informix-2005.02/blib/arch
/usr/local/lib/perl5/5.8.7/sun4-solaris /usr/local/lib/perl5/5.8.7
/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris
/usr/local/lib/perl5/site_perl/5.8.7 /usr/local/lib/perl5/site_perl/5.6.1
/usr/local/lib/perl5/site_perl .) at t/t98pod.t line 5.
BEGIN failed--compilation aborted at t/t98pod.t line 5.
t/t98pod............dubious
        Test returned status 2 (wstat 512, 0x200)
t/t99clean..........ok
Failed Test Stat Wstat Total Fail  Failed  List of Failed

-------------------------------------------------------------------------------
t/t91udts.t  255 65280    16   18 112.50%  6-7 9-16
t/t98pod.t     2   512    ??   ??       %  ??
3 tests skipped.
Failed 2/55 test scripts, 96.36% okay. 10/822 subtests failed, 98.78%okay.
*** Error code 29
make: Fatal error: Command failed for target `test_dynamic'
--------------------------



 ------------------------------
*Von:* Jonathan Leffler [mailto:[EMAIL PROTECTED]
*Gesendet:* Dienstag, 4. Juli 2006 21:54
*An:* Pfister, Govinda
*Cc:* dbi-users@perl.org
*Betreff:* Re: DBD::Informix on Solaris



On 7/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED] > 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 <[EMAIL PROTECTED]>  #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."




--
Jonathan Leffler <[EMAIL PROTECTED]>  #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."

Reply via email to