Bonjour,

Comment connaître le nombre de résultats au niveau
d'un sdx:success dans un sdx:executeSimpleQuery?

L'exécution d'une requête par une XSP construit notamment un objet "sdx_results" qui a la méthode count() pour donner cette information.

Toutefois, je pense que ceci ne marche pas:

<sdx:executeSimpleQuery/>
<xsp:logic>
  int nbResultats = sdx_results.count()
</xsp:logic>

Je n'ai pas testé, mais je crois que sdx_results est réinitialisé (mis à null même) après l'exécution de la requête et l'affichage des résultats.

Par contre, je suis à peu près certain que ceci fonctionne:

<sdx:location/>
<sdx:simpleQuery/>
<sdx:results/>
<xsp:logic>
  int nbResultats = sdx_results.count()
</xsp:logic>
<sdx:show/>

C'est la manière "décomposée" de faire une requête en SDX. Il faut faire attention de bien répartir les paramètres (par exemple qidParam) sur les bons éléments, mais sinon ça donne la même chose. Voir la doc pour être certain.

Ce bout de code te permet notamment de ne rien afficher si nbResultats est trop grand, par exemple:

<xsp:logic>
  int nbResultats = sdx_results.count()
  if (nbResults > 10000) {
      <sdx:show/>
  }
</xsp:logic>

Pas testé, mais il me semble avoir déjà fait cela.

Martin Sévigny


_______________________________________________
sdx-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/sdx-users

Répondre à