Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Редактирование данных в таблице


Автор: NiJazz 3.4.2004, 15:18
Есть таблица на диске. В программе есть компонент TTable или TQuery, связанный с ней. Через DataSource связана таблица с компонентами Data Controls. Если менять модержимое, например, TDBEdit, то меняется сразу и содержимое таблицы. Можно сделать так, чтобы не менялось, но менялось лишь содержимое поля Text?
Может, свойство какое есть. Не хочется использовать OldValue набора данных.

Автор: Vit 3.4.2004, 15:35
Использовать обычный TEdit, а переброску данных туда-сюда делать уже в коде.

Автор: NiJazz 3.4.2004, 15:52
Vit
А с TDBEdit никак?

Автор: Akella 5.4.2004, 11:08
в языке SQL есть понятие OLDVALUE или что в этом роде.
Может есть такое понятие в еомпоненте TTable или TQuery

а можно запоминать значение поля перед редактированием.

А можно использовать такой код

procedure TfmMain.actAptAddExecute(Sender: TObject);
Var
RecNum:Integer;
begin//добавляем поставщика
with tApt do begin
RecNum:=tApt.RecNo;
... что-то делаем перед добавлением или редактирование
Append;//или Edit;
fmAptEdit - форма с компонентами DBControls
fmAptEdit:=TfmAptEdit.Create(self);
fmAptEdit.Caption:='Добавить нового поставщика';
if fmAptEdit.Showmodal=mrOK then
begin
Post;
end else
begin
Cancel;
RecNo:=RecNum;
end;
FreeAndNil(fmAptEdit);
end;//with
end;

Автор: Serggggg 5.4.2004, 12:50
NiJazz, в принципе, до POST'а никакие изменения в таблицу не вносятся. Во всяком случае, можешь попробовать использовать обработчик BeforePost для этой таблицы. Например, диалог "Не хотите ли сохранить?". Тогда OK=Post, Cancel=Rollback.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)