Topic: Как заполнить поле в таблице, которого нет в форме?

Добрый вечер, Гуру My Visual Database!
Много лет занимаюсь программированием баз данных SAP, Oracle и MS SQL. Решил попробовать My Visual Database как дополнительный источник дохода и творчества, но вот же не задача... проблема вроде простая, но не могу найти решения. подскажите пожалуйста синтаксис, или ткните носом где посмотреть (искал, но чет ничего не нашел).
Задача: Допустим есть таблица base, в ней набор полей a,b,c,d... на форме в режиме создания записи есть только a и d и кнопка Save, а поля b и c должны заполниться по какой-то логике.
подскажите пожалуйста, как это сделать? что-то типо  if a="True" then base-b="X" end;
в дополнении: записи в таблице еще нет, она только создается (ни кто не отменял Cancel), Save еще не нажата...
Заранее спасибо.

2 (edited by sibprogsistem 2019-03-26 21:05:45)

Re: Как заполнить поле в таблице, которого нет в форме?

думаю что поля b и c  лучше так же заполнять через кнопку save а результаты логики передовать в (скрытые компоненты) полей b и c на форме...

Post's attachments

Attachment icon test.7z 3.44 kb, 254 downloads since 2019-03-26 

Re: Как заполнить поле в таблице, которого нет в форме?

Проще всего будет передать данные для сохранения как подсказали выше через скрытые компоненты, которые можно заполнить в событии OnClick кнопки с действием "Сохранить запись"

procedure Form2_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
    if Form2.dbAction = 'NewRecord' then // заполняем компонент только если форма была вызвана для создания новой записи
    begin
        if Form2.CheckBox1.Checked then Form2.Edit2.Text := 'ваше значение';
    end;
end;
Dmitry.

Re: Как заполнить поле в таблице, которого нет в форме?

Добрый день, большое спасибо за ответы!
В итоге так и сделал. привык что при работе с БД обычно есть возможность просто присвоить значение полю структуры. не хватает этой возможности.

Re: Как заполнить поле в таблице, которого нет в форме?

zm_net wrote:

Добрый день, большое спасибо за ответы!
В итоге так и сделал. привык что при работе с БД обычно есть возможность просто присвоить значение полю структуры. не хватает этой возможности.

Можно присвоить значение и непосредственно полю с использованием SQL запроса, пример

procedure Form2_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
   if Form2.CheckBox1.Checked then SQLExecute('UPDATE tablename SET fieldname=''value'' WHERE id='+IntToStr(Form2.bSave.dbGeneralTableId)); 
end;
Dmitry.

Re: Как заполнить поле в таблице, которого нет в форме?

Спасибо,
Это конечно тоже вариант, но это в данном случае это доп обращение к базе.
я имел ввиду конструкцию вида:
описывается скажем структура таблицы БД Table1 с полями A,B,C...., часть полей размещено на форме,  другую часть нужно рассчитать или заполнить стат значениями (или значениями из полей других таблиц), заполняем их в скрипте примерно так Form1.Table1.A:='', Form1.Table1.b:=''.....
Когда структура будет полностью заполнена нажимается кнопка Save, срабатывает Insert и усе.... значения структуры помещаются в таблицу. ни каких дополнительных движений и update'ов .
просто как размышление.

Re: Как заполнить поле в таблице, которого нет в форме?

Видимо в данном случае вам помогут тригеры.

Dmitry.