Bonjour,
Me voilà venu vous présenter un problème qui va finir par me rendre dingue... Cherchez la logique.
J'attaque une base type AS400 avec les composants DBExpress. J'utilise le driver fourni par Peter Sawotsky pour cela.
Le problème: quand je donne un paramètre numérique à une requête, la valeur effectivement enregistrée dans la table varie!!!
Par exemple si je donne 1 je trouve 1 dans la table tout va bien. Par contre 3 donne 2. 6 donne 5 et 7 donne 6!!!???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Query.SQL:='UPDATE PARAM SET QUANTITE=:quantite'; Query.paramByNmae('quantite').Value:=valeur
Je cherche par tous les moyens de changer le type du paramètre de la requete mais rien n'y fait!!
2 choses à noter:
-dans ma base AS400 les champs numériques sont des champs signés 7S 2 ou 9S3 (=9 positions dont 3 décimales). Il semblerait que ce soit ça le pb...???
-si je fais une requete genre
cela semble passer!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part Query.SQL:='UPDATE PARAM SET QUANTITE='+intostr(valeur)
Quelqu'un a déjà rencontré ce problème??
Merci.
Partager