PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → Requete SQL
Requete SQL
Iniciado por MeAndYou, 23,ene. 2018 11:01 - 6 respuestas
Publicado el 23,enero 2018 - 11:01
Rebonjour les windevients :)
C'est pas ma journée aujourd'hui...
J'ai une chose assez improbable qui se passe...
Je lance une requête SQL sur ma base de données en recherchant un valeur précise dans un champ (je vais aller droit au but ça sera plus clair) Requête SQL : "SELECT * FROM MABDD WHERE STATUT<> 1 AND NUMERO = 3474636349944" et le résultat me renvoi les données associé au numéro : 7807480
?????? je ne comprends pas .... j'ai réindéxé la base et essayé de mettre la valeur recherché entre guillemets mais c'est toujours pareil... quelqu'un à une idée du problème ??
Merci d'avance ... c'est un vrai casse tête!!!
Publicado el 23,enero 2018 - 14:12
bonjour
si numero est une chaine c'est entre quote
'3474636349944'
Miembro registrado
40 mensajes
Popularité : +1 (3 votes)
Publicado el 23,enero 2018 - 15:46
Bonjour,

Dans quel type de variable la valeur 3474636349944 est-elle gérée dans le source ? et dans la base de donnée ?

Si ça peut être une piste...

Cordialement,

Laurent33
Publicado el 23,enero 2018 - 15:56
Merci pour vos réponses
Serge - j'ai déjà essayé de mettre la chaine entre quote mais j'ai le même résultat
Laurent33 - Je n'ai pas trop compris ton commentaire ... Mais cette donnée est une donnée rentrée manuellement...
Miembro registrado
2.572 mensajes
Popularité : +222 (260 votes)
Publicado el 24,enero 2018 - 05:41
Bonjour,

ce que veut dire Laurent33 à mon avis c'est de quel type est ta donnée dans ta base ? (entier sur 4 octets, entier sur 8 octets, chaine, ...).

En l'occurrence, si c'est un entier sur 4 octets tu dois avoir un dépassement de la capacité, celui-ci étant limité à environ 2 000 000 000.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Publicado el 24,enero 2018 - 09:34
Bonjour,
effectivement dans la base c'est un entier sur 4 octets :)
et donc?
Miembro registrado
3.889 mensajes
Popularité : +227 (347 votes)
Publicado el 24,enero 2018 - 10:13
Bonjour, la plage de valeur des entiers sur 4 octets est -2 147 483 648 à 2 147 483 647, tu passes une valeur sur 8 octets, la machine tronque en fonction de sa capacité. C'est comme essayer de charger un Kangoo avec le fret d'un 38 T, quand le Kangoo part, il reste des colis.
La conversion QWord->DWord confirme bien mon explication 3 474 636 349 944[QWord]=7 807 480[DWord]
3 474 636 349 944=0x329 0077 21F8, la machine ne conserve que 0x0077 21F8 qui correspond à 7 807 480

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 24,enero 2018 - 10:18