Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 19:31   #1
nikta
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 15
По умолчанию Условие на UPDATE данных

У меня данные таблицы 1 обновляются при условии, что значение некоторого столбца таблицы 2 равняются переменной i.
Я при помощи Select запрашиваю данные из столбца таблицы 2. после пишу :
Код:
if i=DBGrid1.DataSource.DataSet.FieldByName('Z').Value then begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add ('UPDATE Table1 SET ball=:param0 where nomer=1');
ADOQuery1.Parameters[0].Value := DBGrid1.DataSource.DataSet.FieldByName('Z').Value;
ADOQuery1.ExecSQL;
end;
Мучаюсь уже долго не могу понять где ошиблась. Все работает просто условие не выполняется. Причем если задать жестко if i=0,2 и далее по тексту, то условие выполняется. Все данные уже подогнала, чтоб ответ был наверняка. Пробовала вводить переменную Z.
Z:=DBGridBalance.DataSource.DataSet .FieldByName('Z').Value;
if i=Z then ...
В DBGride вижу что Z имеет значение 0,2.

Последний раз редактировалось Stilet; 12.05.2010 в 09:13.
nikta вне форума Ответить с цитированием
Старый 12.05.2010, 08:44   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Попробуйте запустить проект в пошаговом режиме и переменную Z может она не 0,2 а 0,200000058 к примеру. и тогда условие не выполнится
SERG1980 вне форума Ответить с цитированием
Старый 12.05.2010, 09:05   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

SERG1980 +1

а если попробовать так?:
Код:
if abs(i-DBGrid1.DataSource.DataSet.FieldByName('Z').Value)<0.01 then begin
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2010, 09:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
DBGrid1.DataSource.DataSet.FieldByN ame('Z').Value
Я бы пожалуй написал так:
Код:
with DBGrid1.DataSource.DataSet do
 if (not FieldByName('Z').IsNull) and (FieldByName('Z').AsFloat=0.2) then...
Это для начала. И конечно же нужно знать открыта ли таблица, и вообще есть ли такое поле, такое значение в ней.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2010, 15:45   #5
nikta
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 15
По умолчанию

Спасибо, помогло!
nikta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
update shad0w SQL, базы данных 3 27.10.2009 11:44
UPDATE с параметрами QQmb SQL, базы данных 11 06.05.2009 15:20
insert и update Tanusha SQL, базы данных 4 13.03.2009 14:47
Update данных KiSH333 БД в Delphi 2 01.12.2008 13:28
не работает UPDATE chekanoff БД в Delphi 1 27.02.2008 21:57