memo.garciasir has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
I canīt make an update to a MS Access dabase using DBI.pm
The code i'm using is similar to the one that follows:
#!/usr/bin/perl use strict; use warnings; use Cwd; use DBI; my ($dsn, $dbh, $sth); my %proyeccionPIB; my $curDir = cwd(); my $dbName = $curDir . "/cargasInterurbanas.mdb"; $dsn = "dbi:ODBC:" . "DRIVER={Microsoft Access Driver (*.mdb)};" . "DBQ=" . $dbName . ";" . "PWD=;" ; $dbh = DBI-> connect($dsn, undef, undef, {PrintError => 1, RaiseError +=>1}) or die "Can't open database ($DBI::errstr)"; $dbh->{RaiseError} = 1; my $sql = "SELECT Ano, crecimientoPIB FROM PIB;"; $sth = $dbh->prepare ($sql); $sth->execute (); print "ProyeccionPIB\n"; while (my @row = $sth->fetchrow_array) { $proyeccionPIB{$row[0]} = $row[1]; printf ("\t%s\t%5.3f\n", $row[0], $proyeccionPIB{$row[0]}); } $sql = "UPDATE PIB SET crecimientoPIB = 0.045 WHERE Ano = 2013"; $sth = $dbh->prepare ($sql) or die->errstr;; $sth->execute (); DBI::dump_results($sth);
When I run this code, it tell that "0 rows" are updated
the definition of the PIB table is:
Ano type Number crecimientoPIB type number
If I do the same update directly into MS Access it works fine
What I'm doing wrong?
Thanks in advance,
memo
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: update access dabase using DBI
by moritz (Cardinal) on Jan 31, 2011 at 20:30 UTC | |
|
Re: update access dabase usin DBI
by Just in (Sexton) on Feb 01, 2011 at 05:23 UTC | |
|
Re: update access dabase usin DBI
by mje (Curate) on Feb 01, 2011 at 10:21 UTC |