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