Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > как сложить данные полученные из запроса?


Автор: xxxsas 9.1.2009, 14:18
столкнулся с проблемой: нужно сложить/вычесть данные полученные из запроса SQL.
код:

int matz = QueryDTP->FieldByName("summ_mater_exp")->AsFloat;
int zopt = QueryDTP->FieldByName("summ_exp_pay_trud")->AsFloat;


int tik = matz + zopt;

1) типы полей в таблице бд MS SQL SERVER 2000 - varchar(25);
Выдает ошибку: "'is not a valid floating point value'

2) типы полей в таблице бд MS SQL SERVER 2000 - float(25);
Выдает ошибку: "cannot convert varchar to float'

В чем ошибка в 1 и во 2 случаях и как ее можно исправить?

Автор: Dmi3ev 9.1.2009, 14:36
Цитата

int matz 

это целое, а это
Цитата

QueryDTP->FieldByName("summ_mater_exp")->AsFloat;

а это число с плавающей точкой
Код

float matz = QueryDTP->FieldByName("summ_mater_exp")->AsFloat;


Добавлено через 18 секунд
попробуй так

Добавлено через 1 минуту и 34 секунды
я исправил только одну, дальше сам)))

Автор: xxxsas 9.1.2009, 14:41
тажа ошибка выскакивала(хотя правда Ваша насчет float +1 ( я на это внимание не обращал).

###############################################
   Если кому придется столкнуться с подобным, то ошибка была в том , что в бд. MS SQL SERVER 2000 сначала был тип полей  float и данные были внесены до изменения полей на varchar. Для исправления ошибки нужно сначала удалить все значения полей, затем изменить тип полей на varchar, затем заново внести данные в таблицу.
   Также стоит обратить внимание на прототипы int и float(в зависимости от значений)...
###############################################

[SIZE="5"]Тема закрыта - Сам разобрался[/SIZE]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)