PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV (versões anteriores) → Requete SQL
Requete SQL
Iniciado por MeAndYou, jan., 23 2018 11:01 AM - 6 respostas
Publicado em janeiro, 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!!!
Publicado em janeiro, 23 2018 - 2:12 PM
bonjour
si numero est une chaine c'est entre quote
'3474636349944'
Membro registado
40 mensagems
Popularité : +1 (3 votes)
Publicado em janeiro, 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
Publicado em janeiro, 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...
Membro registado
2.571 mensagems
Popularité : +222 (260 votes)
Publicado em janeiro, 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
Publicado em janeiro, 24 2018 - 9:34 AM
Bonjour,
effectivement dans la base c'est un entier sur 4 octets :)
et donc?
Membro registado
3.883 mensagems
Popularité : +227 (347 votes)
Publicado em janeiro, 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
Mensagem modificada, janeiro, 24 2018 - 10:18 AM