cleonat
Messages postés5Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention10 mai 2008
-
5 mai 2008 à 11:28
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
10 mai 2008 à 16:48
Voilà mon problème, je remplis un datagrid avec les données récoltées par une stored procédure par l'intermédiaire d'un dataset.
Dans ma stored j'ai choisi un ordre particulier (ORDER Crit1 DESC, Crit2).
Lors de l'affichage du datagrid je me rend compte que les données sont triées par id et non comme je l'avais indiqué dans la stored.
Le problème ne se pose que sur le serveur de production qui est en asp2 et sqlServer2005 alors que le pc sur lequel j'ai développé l'application est en asp1 et sqlServer2000.
Quelqu'un aurait-il déjà eu ce problème ?
Merci
cleonat
Messages postés5Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention10 mai 2008 10 mai 2008 à 13:32
Salut,
J'ai fini par trouver la solution même si je ne comprends pas le pourquoi.
J'ai suivi ton conseil et j'ai exécuté la stored sur le serveur.
Pour remplir mon Dataset, j'exécutais une stored procédure en SELECT qui elle-même exécutait une VIEW.
La VIEW était triée "SELECT ... FROM ..... ORDER BY Crit1 DESC, Crit2 ASC" et sur mon portable en SQLServer2000 tout allait bien. Sur le Serveur de production en SQLServer2005, lors de l'exécution le tri ne s'effectue pas.
Il me faut donc dans la stored procedure faire un "SELECT ... FROM VIEW ORDER BY Crit1 DESC, Crit2 ASC" Je ne comprend pas pourquoi mais bon ça marche maintenant.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 10 mai 2008 à 16:48
C'est normal, si tu spécifies pas l'ordre, le moteur SQL va prendre celui qui lui permet de récuperer les données les plus rapidement, il y a des différences au niveau des 2 moteurs et pour peu que les index soient différents alors le moteur va pas récuperer les données de la meme facon.