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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 21:16   #1
Daur
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 47
Радость Сложение в ДБгриде?

есть значение первого столбца например 50...и значение второго столбца 60....вопрос как вывести сумму значений (110) в третий столбец...?
бал бал Итог
50 60 110
"..."
Daur вне форума Ответить с цитированием
Старый 29.05.2010, 21:38   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Сложение происходит не в DBGrid-e, а в DataSet. Используйте запрос. Или DBGridEh.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 29.05.2010, 21:44   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Надо изменить запись в поле таблицы, или просто отобразить поле в гриде и этого поля итог в таблице не существует?
если поля нет, а надо вычислить, то вычисляем либо в запросе, либо создаём вычисляемое поле "calculated" в датасете, если поле в таблице, то вычисляем и записываем
vovk вне форума Ответить с цитированием
Старый 29.05.2010, 21:48   #4
Daur
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 47
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Сложение происходит не в DBGrid-e, а в DataSet. Используйте запрос. Или DBGridEh.
будьте добры подскажите запрос?
"..."
Daur вне форума Ответить с цитированием
Старый 29.05.2010, 21:52   #5
Daur
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Надо изменить запись в поле таблицы, или просто отобразить поле в гриде и этого поля итог в таблице не существует?
если поля нет, а надо вычислить, то вычисляем либо в запросе, либо создаём вычисляемое поле "calculated" в датасете, если поле в таблице, то вычисляем и записываем
Поле "итог" в таблице есть и в нем необходимо отобразить сумму двух других рядомстоящих полей Дбгрида...подскажите запрос..?
"..."
Daur вне форума Ответить с цитированием
Старый 29.05.2010, 21:58   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

както так
Код:
'SELECT название_поля1, название_поля2, ( название_поля1 + название_поля2 ) as itog From название_таблицы '
естественно набор полей произвольный. А да и поля должны быть соответствующего типа, иначе нужно будет преобразовать значение перед сложением

ой стоп стоп стоп, если поле есть= в него просто надо занести значение, а это так

Код:
UPDATE название_таблицы SET название_итогового_поля =  название_поля1 + название_поля2 WHERE <ну тут понятно если есть какието условия>
дополнение про соответствие типов тут тоже действует

Последний раз редактировалось vovk; 29.05.2010 в 22:02.
vovk вне форума Ответить с цитированием
Старый 29.05.2010, 22:46   #7
Daur
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Код:
UPDATE название_таблицы SET название_итогового_поля =  название_поля1 + название_поля2 WHERE <ну тут понятно если есть какието условия>
дополнение про соответствие типов тут тоже действует
прописал этот запрос..затем делаю Activ=true а он пишет CommandText does not return a result set...Это я неправильно что-то прописал да..?

"Where" не писал...потому что условий нет...вроде нет...
"..."

Последний раз редактировалось Daur; 29.05.2010 в 22:52.
Daur вне форума Ответить с цитированием
Старый 29.05.2010, 22:50   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Для запросов UPDATE, DELETE, CREATE, INSERT в общем которые не возвращают записей нужно использовать не Activ=true или open (что одно и тоже), а ExecSql, по крайней мере для компонентов адо и бде

Последний раз редактировалось vovk; 29.05.2010 в 23:17.
vovk вне форума Ответить с цитированием
Старый 29.05.2010, 23:17   #9
Daur
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 47
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Для запросов UPDATE, DELETE, CREATE, INSERT в общем которые не возвращают записей нужно не использовать не Activ=true или open (что одно и тоже), а ExecSql, по крайней мере для компонентов адо и бде
извиняюсь за возможно глупый вопрос ...но как вызвать этот ExecSql..?
"..."
Daur вне форума Ответить с цитированием
Старый 29.05.2010, 23:22   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

query.execsql
Если мой телепатор не сработал, то начнём сначала, что за БД, какие компоненты?
vovk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение в БД Oleg Romanchuk Помощь студентам 5 24.11.2009 09:30
перемещение фокуса в ДБГриде opel.omega Общие вопросы Delphi 2 26.11.2008 13:50
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Поле выбора в дбгриде Elm0 БД в Delphi 6 14.01.2008 15:15
почему измененные данные не отображаэтся в дбгриде doncova1 БД в Delphi 12 04.02.2007 15:46