![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
тип поля [D6]
Nina © (2002-05-20 17:12:00)Здравствуйте!
Помогите пожайлуста правильно написать
запрос...мне надо вычесть из одного поля другое
пишу так
DataModule1.TSirSkladQuery3.sql.Clear;
DataModule1.TSirSkladQuery3.sql.Text:=("update sklads set kolvo = "+ FloatToStr(s_k)+ " - "+FloatToStr(p_v)+" where nomer= ""+IntToStr(s_n)+"" ");
DataModule1.TSirSkladQuery3.ExecSQL;
выдаёт ошибку..
если например поле не целочисленное 26.6 то выдаст ошибку на 6
если поле 31.5 то выдаст на 5 т е на не целую часть!
что сделать можно?
скажите плз!
Johnny Smith (2002-05-21 10:52:00) [1]2Nina (21.05.02 09:07)
мне нужна была "."
а была ","
Не стоит радоваться: разделитель устанавливается в системе (т.е. в Виндах), поэтому Ваша программа НИКОГДА не будет заранее знать, пользоваться ли ей точкой или запятой на другом компьютере.
Есть два выхода:
1) пользоваться параметрами; тогда TQuery сама сконвертит нецелое число как надо;
2) при запуске приложения в *.dpr-файле выставить значение переменной DecimalSeparator в "." или ","
Nina (2002-05-21 09:07:00) [2]>>Mambet
мне нужна была "."
а была ","
спасибо!
Mambet (2002-05-21 05:42:00) [3]А разделитель у тебя не запятая.Если да, то и получается, что дробную часть он воспринимает как имя поля.
Попробуй изменить на разделитель точку или передавай через параметр.
DPetrovich (2002-05-20 17:18:00) [4]Здрасте Вам!
Попробуйте так..
DataModule1.TSirSkladQuery3.sql.Text:=
("update sklads set kolvo = "+
"convert(float,"+ FloatToStr(s_k) +")"+
+ " - " +
"convert(float,"+FloatToStr(p_v)+")" +
where nomer= ""+IntToStr(s_n)+"" ");