J'ai un probl=E8me pour faire un SELECT sur une source ODBC, =E7a
fonctionne parfaitement en PHP mais pas en perl ?
Voici mon script (=E0 peu pr=E8s) :
> use DBI;
> $dbh =3D DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or...
> $sth =3D $dbh->prepare($sql) or die...
> do {
> my @row;
> my $line=3D1;
> # fetch each row in array
> while (@row =3D $sth->fetchrow_array())
> {
> print ($line + 1);
> print ". ";
> # print each field in a row
> for ($i=3D0;$i<$#row;$i++)
> {
> print $row[$i]
> };
> print "\n";
> $line++;
> }
> # see if there's more records to show
> } while ($sth->{odbc_more_results});
Mais voil=E0 je re=E7ois ce message d'erreur :
DBD::ODBC::st fetchrow_array failed: [unixODBC][IBM][System i Access
ODBC Driver]Column 1: CWB0111 - A buffer passed to a system call is
too
small to hold return data (SQL-22018) [state was 22018 now 01004]
[unixODBC][IBM][System i Access ODBC Driver]String data right
truncation. (SQL-01004) at ./odbcdemo-perl.pl line n.
Je ne suis expert ni en ODBC ni en DBI, alors si qqn pouvait m'aider ?
J'ai trouv=E9 un probl=E8me similaire en PHP :
http://www-01.ibm.com/support/docview.wss?uid=3Dnas1ac5658703ae5a78b862...
Et je ne suis pas le seul =E0 avoir eu ce probl=E8me :
http://www.ibm.com/developerworks/forums/thread.jspa?threadID=3D185874&...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
magix
On 3 août, 17:17, magix wrote:
Bonjour,
Hello,
J'ai un problème pour faire un SELECT sur une source ODBC, ça fonctionne parfaitement en PHP mais pas en perl ?
Voici mon script (à peu près) :
> use DBI; > $dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or... > $sth = $dbh->prepare($sql) or die... > do { > my @row; > my $line=1; > # fetch each row in array > while (@row = $sth->fetchrow_array()) > { > print ($line + 1); > print ". "; > # print each field in a row > for ($i=0;$i<$#row;$i++) > { > print $row[$i] > }; > print "n"; > $line++; > } > # see if there's more records to show > } while ($sth->{odbc_more_results});
Mais voilà je reçois ce message d'erreur :
DBD::ODBC::st fetchrow_array failed: [unixODBC][IBM][System i Access ODBC Driver]Column 1: CWB0111 - A buffer passed to a system call is too small to hold return data (SQL-22018) [state was 22018 now 01004]
[unixODBC][IBM][System i Access ODBC Driver]String data right truncation. (SQL-01004) at ./odbcdemo-perl.pl line n.
Je ne suis expert ni en ODBC ni en DBI, alors si qqn pouvait m'aider ?
J'ai trouvé un problème similaire en PHP :http://www-01.ibm.com/suppo rt/docview.wss?uid=nas1ac5658703ae5a78b862...
Et je ne suis pas le seul à avoir eu ce problème :http://www.ibm.com/ developerworks/forums/thread.jspa?threadID5874&...
On 3 août, 17:17, magix <dbuche...@hsolutions.ch> wrote:
Bonjour,
Hello,
J'ai un problème pour faire un SELECT sur une source ODBC, ça
fonctionne parfaitement en PHP mais pas en perl ?
Voici mon script (à peu près) :
> use DBI;
> $dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or...
> $sth = $dbh->prepare($sql) or die...
> do {
> my @row;
> my $line=1;
> # fetch each row in array
> while (@row = $sth->fetchrow_array())
> {
> print ($line + 1);
> print ". ";
> # print each field in a row
> for ($i=0;$i<$#row;$i++)
> {
> print $row[$i]
> };
> print "n";
> $line++;
> }
> # see if there's more records to show
> } while ($sth->{odbc_more_results});
Mais voilà je reçois ce message d'erreur :
DBD::ODBC::st fetchrow_array failed: [unixODBC][IBM][System i Access
ODBC Driver]Column 1: CWB0111 - A buffer passed to a system call is
too
small to hold return data (SQL-22018) [state was 22018 now 01004]
[unixODBC][IBM][System i Access ODBC Driver]String data right
truncation. (SQL-01004) at ./odbcdemo-perl.pl line n.
Je ne suis expert ni en ODBC ni en DBI, alors si qqn pouvait m'aider ?
J'ai trouvé un problème similaire en PHP :http://www-01.ibm.com/suppo rt/docview.wss?uid=nas1ac5658703ae5a78b862...
Et je ne suis pas le seul à avoir eu ce problème :http://www.ibm.com/ developerworks/forums/thread.jspa?threadID=185874&...
J'ai un problème pour faire un SELECT sur une source ODBC, ça fonctionne parfaitement en PHP mais pas en perl ?
Voici mon script (à peu près) :
> use DBI; > $dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or... > $sth = $dbh->prepare($sql) or die... > do { > my @row; > my $line=1; > # fetch each row in array > while (@row = $sth->fetchrow_array()) > { > print ($line + 1); > print ". "; > # print each field in a row > for ($i=0;$i<$#row;$i++) > { > print $row[$i] > }; > print "n"; > $line++; > } > # see if there's more records to show > } while ($sth->{odbc_more_results});
Mais voilà je reçois ce message d'erreur :
DBD::ODBC::st fetchrow_array failed: [unixODBC][IBM][System i Access ODBC Driver]Column 1: CWB0111 - A buffer passed to a system call is too small to hold return data (SQL-22018) [state was 22018 now 01004]
[unixODBC][IBM][System i Access ODBC Driver]String data right truncation. (SQL-01004) at ./odbcdemo-perl.pl line n.
Je ne suis expert ni en ODBC ni en DBI, alors si qqn pouvait m'aider ?
J'ai trouvé un problème similaire en PHP :http://www-01.ibm.com/suppo rt/docview.wss?uid=nas1ac5658703ae5a78b862...
Et je ne suis pas le seul à avoir eu ce problème :http://www.ibm.com/ developerworks/forums/thread.jspa?threadID5874&...
$dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or... $sth = $dbh->prepare($sql) or die... do { my @row; my $line=1; # fetch each row in array while (@row = $sth->fetchrow_array())
Où est le $sth->execute(...) ?
-- On ne sort pas du délire de technoïdes crypto-intellos qui s'imagi- -naient pouvoir proposer une alternative dans la dictature des medias à la solde du grand kapital ou de l'État. Y en a qui l'ont cru sincè- -rement et d'autres qui ont fait en sorte de vérouiller le système au plus vite. -- E7 dans fufe --
Sur fr.comp.lang.perl, magix disait :
$dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or...
$sth = $dbh->prepare($sql) or die...
do {
my @row;
my $line=1;
# fetch each row in array
while (@row = $sth->fetchrow_array())
Où est le $sth->execute(...) ?
--
On ne sort pas du délire de technoïdes crypto-intellos qui s'imagi-
-naient pouvoir proposer une alternative dans la dictature des medias
à la solde du grand kapital ou de l'État. Y en a qui l'ont cru sincè-
-rement et d'autres qui ont fait en sorte de vérouiller le système au
plus vite. -- E7 dans fufe --
$dbh = DBI->connect('dbi:ODBC:' . $dsnname, $dbuser, $dbpwd) or... $sth = $dbh->prepare($sql) or die... do { my @row; my $line=1; # fetch each row in array while (@row = $sth->fetchrow_array())
Où est le $sth->execute(...) ?
-- On ne sort pas du délire de technoïdes crypto-intellos qui s'imagi- -naient pouvoir proposer une alternative dans la dictature des medias à la solde du grand kapital ou de l'État. Y en a qui l'ont cru sincè- -rement et d'autres qui ont fait en sorte de vérouiller le système au plus vite. -- E7 dans fufe --