Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизПо поводу процедуры "BeforePost" в Ttable Найти похожие ветки
← →
Heretic © (2004-09-09 15:21) [0]Есть две таблицы. При изменении одной таблицы необходимо произвести изменения в другой таблице.
Делаю так:
В Table1 "AfterEdit" пишу:
Begin
OldValue:=table1.fieldvalues["Pole1"];
end;
В Table1 "BeforePost" пишу:
Begin
if OldValue<>table1.fieldvalues["Pole1"] then
begin
table2.filter:="Pole1="""+vartostr(OldValue)+"""";
table2.first;
while not table2.eof do
begin
table2.edit;
table2.fieldvalues["Pole1"]:=table1.fieldvalues["Pole1"];
table2.post;
end;
end;
end;
При выполнении процедуры Table1 "BeforePost" в Table2 изменяется только первая запись, затем выдает ошибку "KeyViolations"
При повторном выполнении процедуры Table1 "BeforePost" в Table2 изменяется следующая запись, затем опять выдает ошибку "KeyViolations". Таким образом обрабатывается только одна запись Table2.
Уважаемые Гуру, что я делаю не так?
← →
Ditrix © (2004-09-09 15:32) [1]забыл table2.next;
← →
Heretic © (2004-09-09 15:37) [2]Я не забыл.
Просто разницы нет. У меня стоит фильтр на Table2 по полю "Pole1", и при выполнении "Table2.Post" Table2.RecordCount автоматически уменьшается на одну запись, так как измененная запись уже не попадает под фильтр.
Но даже если использовать table2.next - ошибка та же.
← →
megabyte © (2004-09-09 16:33) [3]А если попробовать, не знаю, поможет ли обновление,
table2.refresh
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.038 c