bonjour,
j'ai créé dans un module que j'utilise une fonction DBQuery afin de récuperer les données correspondant à un requete sql dans un tableau de tables de hashage ma fonction fait un return, la table de hash temporaire utilisée dans le module récupère bien les valeurs je les ai affichées
mais lorsque dans mon fichier executable je veux recuperer le tableau de tables de hash, et bien toutes les tables de hash sont vides pourquoi ? :'( :@

voici le code de DB Query:

sub DBQuery2{
my $stmt=$_[0];
my $db=$_[1];
my @res;
my %Data;
if ($db->Sql($stmt)){
print "SQL failed.\n";
print "Error: " . $db->Error() . "\n";
#$db->Close();
exit;
}
while($db->FetchRow()){
%Data=$db->DataHash();
push(@res,{%Data});
}
return @res;
}

voici la fonction de connection:

sub DBConnection{
my $db;

if(!($db = new Win32::ODBC("DSN=$dsn;UID=$uid;PWD=$pwd;"))){
print "erreur lors de la liaison avec DSN\n";
print "erreur: ". Win32::ODBC::Error() ."\n";
exit;
}
return $db;
}

voici le code du fichier executé:

$db=DBConnection();
my $Sql3 = "SELECT * FROM table1";
my @res2=DBQuery($Sql3,$db);
my %date0=%{@res2[0]};
my $date=$date0{1};
print "date:$date\n";