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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 07:50   #1
ArinaP
 
Регистрация: 18.05.2015
Сообщений: 8
По умолчанию С базой данных

Здравствуйте. Мне нужно чтобы 2 столбца складывались и выводились в третий, с помощью кнопки в таблице в Delphi. Но он даже не складывает и выводит просто 0. Что не правильно, подскажите.
Код:
Form11.show;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT ([Плата_за_сверхнормативный_вес]+[Плата_за_сверхнормативный_размер]) AS Итого_к_оплате FROM bagaj');
ADOQuery1.Active:=True;
Label2.Caption:=IntToStr(ADOQuery1.FieldValues ['Итого_к_оплате']);

Последний раз редактировалось Stilet; 21.05.2015 в 09:33.
ArinaP вне форума Ответить с цитированием
Старый 21.05.2015, 08:30   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Но он даже не складывает и выводит просто 0
Чего запрограммировал, то и получил - сумму значений двух полей одной из записей таблицы bagaj.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.05.2015, 10:05   #3
ArinaP
 
Регистрация: 18.05.2015
Сообщений: 8
По умолчанию

А как сделать к каждой записи?
ArinaP вне форума Ответить с цитированием
Старый 21.05.2015, 15:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ArinaP Посмотреть сообщение
А как сделать к каждой записи?
А Вам нужно к КАЖДОЙ ?
Тогда нужно решить, куда Вы денете МНОГО строчек "Итого_к_оплате"

Может, нужно ВСЕ "Итого_к_оплате" просуммировать?

тогда просто запрос измените так:
Код:
ADOQuery1.SQL.Add('SELECT SUM([Плата_за_сверхнормативный_вес]+[Плата_за_сверхнормативный_размер]) AS Итого_к_оплате FROM bagaj');
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.05.2015, 10:55   #5
ArinaP
 
Регистрация: 18.05.2015
Сообщений: 8
По умолчанию

Мне нужно не совсем так. Надо чтобы ,на какую запись нажала в Dbgrid, то и из столбца Итого к оплате было в label. Как это сделать?
ArinaP вне форума Ответить с цитированием
Старый 23.05.2015, 23:57   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ArinaP Посмотреть сообщение
Мне нужно не совсем так. Надо чтобы ,на какую запись нажала в Dbgrid, то и из столбца Итого к оплате было в label. Как это сделать?
это проще вообще без запроса сделать.
У Вас DBGrid с каким датасетом связан?
Там есть нужные поля?

тогда
Код:
Label2.Caption := IntToStr(
   StrToInt(ADOQuery1.FieldByName('Плата_за_сверхнормативный_вес').AsValue) +
   StrToInt(ADOQuery1.FieldByName('Плата_за_сверхнормативный_размер').AsValue));
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с базой данных aby_2503 Java Базы данных (JDBC, JPA, Hibernate) 1 08.12.2010 23:08
DLL с базой данных evgenmil БД в Delphi 6 20.04.2010 21:14
Помогите с Базой Данных Юлькин Общие вопросы C/C++ 8 14.04.2009 08:29
Тест с Базой Данных dimitriy1987 Помощь студентам 1 10.10.2008 20:08
помогите с базой данных Роман-33 БД в Delphi 3 06.09.2008 18:37