Salutations to monks.
I observed that perl (5.005_03) with DBlib behaves in an unexpected way, when $dbh->dbnextrow(return_hash=1,return_ref=1) is called; For first dbnextrow(1,1) call all fine. But second dbnextrow(1,1) call over writes the first reference returned.
I solved the problem by using dbnextrow(1,0) (getting hash instead of hash ref)
But just wondering where is the problem
$ /apps/gnu/bin/perl
use Sybase::DBlib;
$dbh = new Sybase::DBlib (SERVER,USER,PASS);
$dbh->dbcmd('select ser=@@servername');
$dbh->dbsqlexec; $dbh->dbresults;
$a = $dbh->dbnextrow(1,1);
$dbh->dbcmd('select dt=getdate()');
$dbh->dbsqlexec; $dbh->dbresults;
$b = $dbh->dbnextrow(1,1);
print " a-ser: $a->{'ser'} \n\n"; # this becomes non-existant
print " a-dt: $a->{'dt'} \n\n"; # this value suddenly appears, whi
+ch was not even present in the original query
print " b-ser: $b->{'ser'} \n\n";
print " b-dt: $b->{'dt'} \n\n";
__END__
OUTPUT :
--------
a-ser:
a-dt: Mar 30 2011 8:37:50:646PM
b-ser:
b-dt: Mar 30 2011 8:37:50:646PM