Procédure stockée renvoyant plusieurs tables

Doudidou
Invité n'ayant pas de compte PHPfrance

20 juin 2013, 17:53

Bonjour,

J'appelle en PHP une procédure stockée qui me renvoie plusieurs tableaux de résultats.

$db = NewADOConnection('sybase');
$query = ("execute blabla");
$res = $db->Execute($query);

La procédure stockée me renvoie deux tableaux, mais je n'arrive à récupérer les informations que du premier.
J'ai vu qu'il y avait la fonction NextRecordSet() mais je n'arrive pas à m'en servir, je fais $res->NextRecordSet() mais j'ai toujours le premier tableau...

Avez-vous des idées, sachant que je ne peux pas changer la façon dont je me connecte à la base ($db = NewADOConnection('sybase');) ?
Merci d'avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 juin 2013, 20:47

Il en faut peu pour être heureux ......

Doudidou
Invité n'ayant pas de compte PHPfrance

21 juin 2013, 09:22

Bonjour,

Merci pour ta réponse.
J'ai testé le code qui était au lien que tu m'as donné, et ça ne fonctionne pas. En fait même quand je fais simplement :

$res = $db->Execute($query);
$fld = $res->FetchField(1);
echo $res->fields[0];

ça ne fonctionne pas.

Alors que quand je fais :

$res = $db->Execute($query);
$arr1 = $res->FetchNextObject();
echo $arr1->NB_CURRENCIES;

ça fonctionne (ça m'affiche la valeur de nb_currencies de la première ligne du premier tableau).

Avant que quelqu'un pose la question, non je ne peux pas modifier la procédure stockée qui me renvoie les tableaux...

Merci d'avance

Doudidou
Invité n'ayant pas de compte PHPfrance

21 juin 2013, 10:26

Ah non c'est bon ça fonctionne, c'est juste que mon ADODB_FETCH_MODE était à ADODB_FETCH_ASSOC.
Par contre MoveNext() sert à aller à la ligne suivante, et non au tableau suivant...
Une autre idée ?

ViPHP
ViPHP | 2577 Messages

21 juin 2013, 10:43

Peut être :
<?PHP
$res = $db->Execute($query);	
while ($arr1 = $res->FetchNextObject()) {
   echo $arr1->NB_CURRENCIES;
}
?>

Doudidou
Invité n'ayant pas de compte PHPfrance

21 juin 2013, 10:48

C'est pareil, FetchNextObject renvoie la ligne suivante, et non le tableau suivant...
J'ai vu la méthode NextRecordSet() : http://phplens.com/adodb/reference.func ... rdset.html
Mais ça ne fonctionne pas...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 juin 2013, 22:46

c'est quoi la requête sql ?

c'est une requête avec des paramètres "out" ?

si oui il faut pas "bind" les résultats sur des "curseurs" ?


@+
Il en faut peu pour être heureux ......