PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → Requete SQL
Requete SQL
Started by MeAndYou, Jan., 23 2018 11:01 AM - 6 replies
Posted on January, 23 2018 - 11:01 AM
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!!!
Posted on January, 23 2018 - 2:12 PM
bonjour
si numero est une chaine c'est entre quote
'3474636349944'
Registered member
40 messages
Popularité : +1 (3 votes)
Posted on January, 23 2018 - 3:46 PM
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
Posted on January, 23 2018 - 3:56 PM
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...
Registered member
2,568 messages
Popularité : +222 (260 votes)
Posted on January, 24 2018 - 5:41 AM
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
Posted on January, 24 2018 - 9:34 AM
Bonjour,
effectivement dans la base c'est un entier sur 4 octets :)
et donc?
Registered member
3,876 messages
Popularité : +227 (347 votes)
Posted on January, 24 2018 - 10:13 AM
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
Message modified, January, 24 2018 - 10:18 AM