Форум: "Базы";
Текущий архив: 2002.06.13;
Скачать: [xml.tar.bz2];
Внизтип поля Найти похожие ветки
← →
Nina (2002-05-20 17:12) [0]Здравствуйте!
Помогите пожайлуста правильно написать
запрос...мне надо вычесть из одного поля другое
пишу так
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 т е на не целую часть!
что сделать можно?
скажите плз!
← →
DPetrovich (2002-05-20 17:18) [1]Здрасте Вам!
Попробуйте так..
DataModule1.TSirSkladQuery3.sql.Text:=
("update sklads set kolvo = "+
"convert(float,"+ FloatToStr(s_k) +")"+
+ " - " +
"convert(float,"+FloatToStr(p_v)+")" +
where nomer= ""+IntToStr(s_n)+"" ");
← →
Mambet (2002-05-21 05:42) [2]А разделитель у тебя не запятая.Если да, то и получается, что дробную часть он воспринимает как имя поля.
Попробуй изменить на разделитель точку или передавай через параметр.
← →
Nina (2002-05-21 09:07) [3]>>Mambet
мне нужна была "."
а была ","
спасибо!
← →
Johnny Smith (2002-05-21 10:52) [4]2Nina (21.05.02 09:07)
мне нужна была "."
а была ","
Не стоит радоваться: разделитель устанавливается в системе (т.е. в Виндах), поэтому Ваша программа НИКОГДА не будет заранее знать, пользоваться ли ей точкой или запятой на другом компьютере.
Есть два выхода:
1) пользоваться параметрами; тогда TQuery сама сконвертит нецелое число как надо;
2) при запуске приложения в *.dpr-файле выставить значение переменной DecimalSeparator в "." или ","
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.06.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c