FieldByName returns integer instead of money
I need to get cell's value from a table. I use the following line:
The problem is the value is "223,00" or similar, but I always get "223".
Everything works fine if the value is integer.
(Qry.FieldByName(paramName).AsFloat does not work)
Solved! Go to Solution.
Your issue here is that no matter what you type you set the variable to (if using KW) TC will ALWAYS read values as a string
you can try using aqConvert to cast your string to a float
let amount = Qry.FieldByName(paramName).Value;
Unfortunately, none of above works. I still get values as "235" instead "235,00" etc.
I don't think that the problem is TC reading values as strings. I think that function "FieldByName" is a problem but I have no idea how to replace it.
Try using the Object spy on the field, you should be able to see what properties are in the field
may be better suited ?
Sorry, I don't have much experience with TC connecting the DB's so I really can't comment
you can try
but I would try debugging what variable type is coming out of the DB and output it BEFORE you apply any conversion to it
testVar = Qry.FieldByName(paramName).Value
it looks like your DB collation maybe not be what you are expecting, some places use (and can set up the DB) ',' as the decimal seperator
123.45 (Point 45)
123,456.78 (123 thousand)
Alternative DB collation
123,45 (Point 45)
123.456,78 (123 thousand)
in the latter case
223,00 would correctly evaluate to 223 as the .toFloat can't use the ',' collection as a decimal point are far as I know
- there appear to be 2 decimal places at zero and not 3 which would denote a thousand
you may have to change around , and . if this is the case