Bonjour à tous,
Me voilà devant un problème particulier. Je remonte des valeurs de ma base de données MYSQL depuis mon application Delphi et lorsque la valeur est négative, Delphi (ou ADO) me renvoie une valeur positive.
Définition de mon champ :
table : editionlivre
champs : nbarestocker
type : tinyint (signé)
Dans ma base, les valeurs négatives sont bien affichées avec le SELECT qui va bien.
le même SELECT depuis Delphi me remonte :
la bonne valeur si cette valeur est >= 0 (2 retourne 2)
une valeur calculée (la valeur + 256) si la valeur est <0 (-2 retourne 254)
C'est un peu comme si Delphi gérait le champ comme un unsigned.
Mon code :
Quelqu'un a-t-il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 qry:=TADOQuery.Create(self); qry.AutoCalcFields := False; qry.CacheSize := 10; qry.CursorType := ctStatic; qry.LockType := ltReadOnly; qry.ParamCheck := true; qry.ExecuteOptions:=[]; qry.Connection:=QryItem.Connection; sql := 'SELECT nbARestocker FROM editionlivre '; sql:=sql+'WHERE numEditionLivre = 0310311'; showmessage(sql); qry.SQL.Text:=sql; qry.open; showmessage(qry.Fields[0].AsString); vendabilite:=qry.Fields[0].AsInteger; ShowMessage(IntToStr(vendabilite)); qry.close; qry.free;
merci
shug
Partager