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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2009, 13:25   #1
gimbomba
 
Регистрация: 20.02.2009
Сообщений: 3
По умолчанию Сохранение значений вычисляемых полей

Народ, прошу помочь в решении одного вопросов!!!

1) Создаю вычисляемое поле Начислено, которое расчитывается путем перемножения поля из одной таблицы на поле из другой и нужно чтобы результат не просто отображался, а сохранялся. (Желательно не применяя sql).

2) Также нужно, ...

Читать правила раздела!
Одна тема - один вопрос!

Последний раз редактировалось mihali4; 21.02.2009 в 20:46. Причина: 2 разных вопроса в теме
gimbomba вне форума Ответить с цитированием
Старый 20.02.2009, 14:32   #2
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

1) DBEdit6.DataSource.DataSet.Edit;
DBEdit6.Field.AsString:=[значение которое сохраняем];
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 21.02.2009, 00:15   #3
gimbomba
 
Регистрация: 20.02.2009
Сообщений: 3
По умолчанию

А через dbgrid можно?
gimbomba вне форума Ответить с цитированием
Старый 21.02.2009, 10:49   #4
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

пардон, а вы куда значения вводите? в саму dbgrid?
тогда так:
выносите TDBNavigator и через него сохраняете...
как вариант можно скрыть его, а на обычную кнопку "Сохранить", вынести любую интересующую вас функцию...
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 21.02.2009, 12:40   #5
gimbomba
 
Регистрация: 20.02.2009
Сообщений: 3
По умолчанию

Че- то не получается, сколько бы не пробовал: либо ошибку выдает, либо значение в базу не сохраняется.


DBEdit6.DataSource.DataSet.Edit;
DBEdit6.Field.AsString:=[значение которое сохраняем];
в [значение которое сохраняем] я подставляю имя поля, в которое нужно сохранить результат.

Может я че-то делаю не так? Может быть я не в том событии прописываю действия? В каком это событии прописывается

Вот как я рассчитываю вычисляемое поле:

procedure TForm1.uslugCalcFields(DataSet: TDataSet);
begin
uslugUslNachisleno.Value:=uslugUslT arif.Value*abAbPropisano.Value;
end;

UslTarif - поле из таблицы услуги;
AbPropisano - поле из таблицы абоненты;
UslNachisleno - вычисляемое поле из таблицы услуги.

После добавления данных автоматически происходит расчет поля UslNachisleno. Вот нужно чтобы оно не просто отображало значения во время работы приложения, а сохраняло эти значения в базу (в себя или, допустим в другое поле, к примеру UslNachisl).


Нашел в нете подходящий пример:

procedure TForm1.DataSource2DataChange(Sender : TObject; Field: TField);
begin
if (Field<>nil) and (Field.FieldName<>'UslNachisleno') and (Field.DataSet.State in dsEditModes)
then with Field.DataSet do

FieldByName('UslNachisleno').Value: =FieldByName('Usltarif').Value*2;
end;

Но беда в том, что он ориентирован на использовании одной таблицы, а в моем случае в расчете участвуют поля из двух таблиц.

FieldByName('UslNachisleno').Value: =FieldByName('Usltarif').Value*Fiel dByName('AbObchaya_plochad').Value;
gimbomba вне форума Ответить с цитированием
Старый 21.02.2009, 15:50   #6
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

А вам не кажется, что при таком подходе теряется смысл "ВЫЧИСЛЯЕМОГО" поля? Какой смысл его хранить?
Баламут вне форума Ответить с цитированием
Старый 21.02.2009, 19:19   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
DBEdit6.Field.AsString:=[значение которое сохраняем];
в [значение которое сохраняем] я подставляю имя поля, в которое нужно сохранить результат.

Может я че-то делаю не так?
Какое "имя поля"? Вы хоть одну книжку про базы данных пытались прочесть?
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
сохранение значений прямо в exe Roof Общие вопросы Delphi 37 04.12.2008 09:37
предстваление с суммой значений полей таблицы Geddar SQL, базы данных 1 10.06.2008 19:30
Перенос строк в вычисляемых полях Professor Hubert БД в Delphi 0 28.04.2008 20:39
Сортировка после просчета вычисляемых полей azat БД в Delphi 4 19.01.2008 21:09