SQL Server CE overflow sur 400 rows??

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 8 mars 2008 à 21:42
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 8 mars 2008 à 23:02
Il semblerait que SQL Server CE soit bien peu resistant aux requetes à base de sommes de numeric et de group by. Ma query passe sur 200 lignes mais j'obtiens un overflow avec 400 "Expression evaluation caused an overflow."

J'ai trouvé sur les forums MS une personne avec le meme probleme mais sans solution. SQL server CE serait donc si nul que cela? Comment faire?

2 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 mars 2008 à 22:01
Salut,

La requête ne fait intervenir que 400 lignes ou le jeu de résultat final fait 400 lignes ?
Quelle est la requête ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
8 mars 2008 à 23:02
La requete fait intervernir 400 lignes.

C'est:
SELECT hp.hp_hand_value, COUNT(*) AS c, SUM(hp.hp_moneywon) AS s, AVG(hp.hp_moneywon/hand_stakes_bb) AS sprop
FROM hands h, hand_players hp, players pl WHERE hp.hp_hand_value > 0 AND h.hand_id=hp.hand_id AND pl.player_id=hp.player_id AND pl.player_name='xxxx'
GROUP BY hp.hp_hand_value
ORDER BY hp.hp_hand_value DESC

A noter que l'erreur n'arrive qu'avec le SUM. Si on l'enlève, tout fonctionne. moneywon est un numeric 18,2.

J'ai fais des recherches sur le net et je suis tombé sur un gars qui avait le meme probleme et qui a fait
CONVERT(NUMERIC(18,2),SUM(colonne_type_numeric)), ca résoud le probleme. Ca a tout l'air d'être un bug ou une limitation de Server CE, mais ca ne me rassure pas trop pour la suite du développement de mon logiciel. Certaines tables devront supporter entre 800 et 1 millions de lignes.
0
Rejoignez-nous