"for XML auto" est une clause à indiquer à la fin de ta requête, ce qui te permet de non pas récupérer un recordset, mais une chaîne de caractères contenant tes données dans un flux XML structuré (et hiérachique lorsque tu as correctement écrit ta requête)
Sinon, normalement, si, un resultset devrait pouvoir te donner le nombre de lignes. Mais personnellement, je n'utilise jamais de resultset donc je ne connais pas le nom de la propriété.
Deplus, les drivers ODBC d'un grand nombre de SGBD ayant pas mal de bugs à ce niveau, M$ recommande de ne pas utiliser les raccourcis pour connaître le nombre de lignes d'un recordset.
En effet, par exemple, avec SQL Server 6.5, si tu fait un outer join, alors cette propriété sera systématiquement à -1
Idem avec Oracle si tu as des champs de type VARCHAR au lieu de VARCHAR2.
Donc récupère toutes les lignes et compte-les au fur et à mesure, ou alors ajoute un count(*) dans ta requête pour connaître le nombre exact de lignes.
Article sur le XML dans SQL Server : http://msdn.microsoft.com/library/ [...] 162001.asp
Ci-dessous la doc pour la clause FOR XML AUTO (y'a aussi FOR XML RAW et FOR XML EXPLICIT, mais sont plus complexes à utiliser, mais aussi plus puissantes)
http://msdn.microsoft.com/library/ [...] l_03xh.asp
Ci-dessous la doc pour utiliser cette fonctionnalité via ADO (et pour récupérer les données surtout, puisque ce n'est pas un RS ni un DS que tu reçois, mais une string)
http://msdn.microsoft.com/library/ [...] andxml.asp
PS: http://msdn.microsoft.com ne fait que contenir l'aide en ligne qui est fournie AVEC sql server. Fait un petit effort quand même et sers-toi de l'aide, surtout qu'elle est vraiment très bien foutue et extrêment complète... Elle pèse quand même 130 Mo de texte...
Message édité par MagicBuzz le 03-11-2003 à 12:14:41