Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

тип поля [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)+"" ");


Наверх

Титульная страница Поиск, карта сайта Написать письмо