Forcer une colonne à 0 dans une requête FOR XML AUTO

Petit nouveau ! | 2 Messages

28 mars 2011, 15:28

Bonjour,

Après avoir recherché et galéré pas mal de temps je reste sans solution à mon problème.
J'exécute sous SQL Serveur des procédures stockées qui me génèrent des résultats dans un fichier XML (via BCP) qui est ensuite utilisé pour faire du repporting.
Ces procédures vont récupérer des informations dans diverses bases de données historisant ce qui se passe la semaine.
Or lorsque mes bases de données sont vides (en début de semaine) mes querry n'affectent aucunes colonnes, le fichier XML généré et vide/corrompu et fait planter ma vue de repporting.

J'ai essayé de faire des SELECT imbriqués, et des CASE pour forcer une colonne à zéro si il n’y a pas de résultat mais cela ne marche pas, connaissez vous une autre solution???

Code :
SELECT date ,SUM(CAST(Valeur AS float)/1000) AS NUM
FROM BASE.dbo.WIK_QteHebdo
WHERE datepart(year,date) >= @tkan
AND datepart(month,date) >= @tkmois
AND datepart(day,date) >= @tkjour
GROUP BY date
FOR XML AUTO, ELEMENTS, ROOT ('NUM')

ViPHP
xTG
ViPHP | 7331 Messages

28 mars 2011, 15:59

Je n'ai malheureusement pas de solution à t'apporter mais cependant j'ai une remarque.

En cas de XML non valide ou vide il n'est pas normal que ton code de reporting soit planté...
Il faut gérer les erreurs lorsqu'on utilise du contenu externe au script dont on ne connait pas l'état.

Petit nouveau ! | 2 Messages

28 mars 2011, 21:34

Merci ;)