DBD::Informix on Solaris
- From: Govinda.Pfister@xxxxxxxxxx (Govinda Pfister)
- Date: Tue, 4 Jul 2006 13:10:26 +0200
Hello List,
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?
The code is as follows:
----------------------------------------------------------
# Vorbereiten des DBI/DBD::Informix Einfüge-Statements für das Importieren der Daten in die Informix-Datenbank
(my $sth = $dbh->prepare("INSERT INTO stammdatenkundeninfo (uid, firstname, lastname, formofaddress, title, email, phone, mobile, fax, company, orgshort, orglong, costcenter, type, nameaffix, room, building, street, postalcode, country, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"))
or die "${spacer_two}\nFehler: Vorbereiten des DBI/DBD::Informix Einfüge-Statements gescheitert -". $dbh->errstr() .."\n${spacer_two}\n";
(my $sth_upd = $dbh->prepare("Update stammdatenkundeninfo SET requestid = ? WHERE id = ?"))
or die "${spacer_two}\nFehler: Vorbereiten des DBI/DBD::Informix Update-Statements gescheitert -". $dbh->errstr() ."\n${spacer_two}\n";
# Durchlaufen der einzelnen Zeilen der CSV-Datei bis keine mehr da ist
my $anzahl=0;
while ($csv->get_row()) {
# Zuweisen der einzelnen Inhalte der aktuellen Zeile zu Variablen
(my $user_id, $first_name, $lastname, $form_of_adress, $title, $email, $phone, $mobile, $fax, $company, $orgshort, $orglong, $costcenter, $type, $nameaffix, $room, $building, $street, $postalcode, $country) = $csv->extract("User ID","First Name","Last Name","Form of Address","Title","E-Mail","Telephone","Mobile","Fax","Company","OrgShort","OrgLong","Cost Center","Type of Employement", "Name affix", "Room", "Building", "Street", "Postal Code", "Country")
or warn "${spacer_two}\nWarnung: Probleme beim Zuweisen der Spalten des CSV-Datensatz zu Variablen - ${!}\n${spacer_two}\n";
# Ausführen des DBI/DBD::Informix Einfüge-Statements mit den vorbereitenen Variablen
$@ ='';
eval{
$sth->execute($user_id, $first_name, $lastname, $form_of_adress, $title, $email, $phone, $mobile, $fax, $company, $orgshort, $orglong, $costcenter, $type, $nameaffix, $room, $building, $street, $postalcode, $country, "imported");
};
# Fehlerbehandlung
if ($@){
die "${spacer_two}\nFehler: Import des Datensatzes mit der User-ID \"${user_id}\" ist gescheitert -". $dbh->errstr() ."\n${spacer_two}\n";
}
else{
my $id = $sth->{ix_sqlerrd}[1];
printf ILOG "<%6s> %s (DB-ID: %10s)\n", $anzahl, "Import des Datensatzes mit der User-ID \"${user_id}\" war erfolgreich.", $id;
$anzahl++;
$sth_upd->execute($id, $id) or die "Update: $!";
}
}
----------------------------------------------------------
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
Linker and Libraries:
ld='gcc -B/usr/ccs/bin/', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under solaris
Compiled at Dec 2 2005 01:34:16
@INC:
/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
esql -v
---------------------------------------
IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4
Software Serial Number AAA#B000000
dbaccess -V
----------------------------------------
DB-Access Version 9.21.UC6
Software Serial Number AAD#J179567
Govinda Pfister
Remedy Approved Consultant, Clarify Certified Consultant, ITIL-Certified
Projectcenter Business Process Solutions
Solution & Service Center Business Enabling Solutions
Global Competence Center
T-Systems Enterprise Services GmbH
Memmelsdorfer Str. 209a, 96052 Bamberg
+49 951 4097-161 (Tel)
+49 951 4097-200 (Fax)
E-Mail: Govinda.Pfister <mailto:Govinda.Pfister@xxxxxxxxxxxxx> @t-systems.com
Internet: <http://www.t-systems.com/> http://www.t-systems.com
- Follow-Ups:
- Re: DBD::Informix on Solaris
- From: Jonathan Leffler
- Re: DBD::Informix on Solaris
- From: Jonathan Leffler
- Re: DBD::Informix on Solaris
- From: Tielman de Villiers
- Re: DBD::Informix on Solaris
- Prev by Date: Is it correct that execute_array does not raise/print an error
- Next by Date: Re: Is it correct that execute_array does not raise/print an error
- Previous by thread: Is it correct that execute_array does not raise/print an error
- Next by thread: Re: DBD::Informix on Solaris
- Index(es):
Relevant Pages
|
|