Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
j'ai un jolie curseur avec une requête SQL, et j'aurais voulu connaitre le nombre de résultats de mon curseur avant de le parcourir.
Ex:
DECLARE curseur CURSOR FOR select toto from nimp USING SQLCA; OPEN curseur _ecrcpt; FETCH curseur INTO :ls_toto; do while SQLCA.SQLCode = 0 // Traitement FETCHcurseur INTO :ls_toto; loop CLOSE curseur ;
Donc j'aimerai savoir le nombre de résultat avant de faire mon do while.
Merci
Hors ligne











Bonjour,
Dans l'aide pb, j'ai trouvé ceci:
Aide Pb a écrit:
To make sure the fetch affected at least one row, check the SQLNRows property of the transaction object.
Attention cependant: Cette information étant envoyée par la base de donnée elle-même, il peut parfois y avoir des surprises
car cette information n'aura pas forcément la même signification d'un SGBD à l'autre. A tester donc.
Hors ligne
J'ai déjà essayé de mettre des uf_message('test1',SQLCA.SQLNRows) un peu partout mais ça fait pas grand chose, c'est pour ça que je bloque un peu....
Hors ligne






Bonjour,
Tu passes une requête préalable au curseur :
long ll_count SELECT Count(*) INTO :ll_count FROM nimp USING SQLCA;
Hors ligne











Tu es sur quel SGBD et quelle version de PB? Pour le message, je te conseille de convertir ton SQLCA.SQLNRows en string au préalable, voir de vérifier au débuggeur s'il est à NULL
Hors ligne
buck a écrit:
Bonjour,
Tu passes une requête préalable au curseur :Code: PB
long ll_count SELECT Count(*) INTO :ll_count FROM nimp USING SQLCA;
Je peux pas faire 2 fois ma requête car elle est vraiment longue.....
Ma version de PB est la 9 et je suis sur Oracle 9i.
SQLCA.SQLNRows me retourne 0 avant mon premier fetch et 1 après mon premier fetch, donc ce n'est pas le nombre total de résultats..... car j'en ai beaucoup normalement....
Hors ligne














pourquoi ne pas utiliser un DW à la place du curseur ?
Hors ligne
Je crois que je vais faire ça, ça sera plus simple. Je vais utiliser une datastore....
Hors ligne