Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизЗапретить Refresh при изменении несвязаного с параметрами поля? Найти похожие ветки
← →
Erik1 © (2004-12-17 13:52) [0]Есть компонент TsvStoredProc наследние от TStoredProc у него имеется TQueryDataLink = class(TDataLink). В TQueryDataLink описан метод procedure RecordChanged(Field: TField); override; там происходит Refresh подчиненых DataSet.
procedure TQueryDataLink.RecordChanged(Field: TField);
begin
if (Field = nil) and FProc.Active then
FProc.RefreshParams(True); //refresh does not work
end;
procedure TsvStoredProc.RefreshParams(const Force: Boolean);
var
DataSet: TDataSet;
begin
if State in [dsEdit, dsInsert] then
Post;
if Cachedupdates and UpdatesPending then
exit;
DisableControls;
try
if Assigned(FDataLink.DataSource) then
begin
DataSet := FDataLink.DataSource.DataSet;
if Assigned(DataSet) then
if DataSet.Active and (DataSet.State <> dsSetKey) then
if Force or IsChanged(DataSet, Params) then
begin
Close;
Open;
end;
end;
finally
EnableControls;
end;
end;
У всех TsvStoredProc есть возможность задать DataSource мастера и от туда подставляются параметвы в процедуры, это очень удобно при любых изменениях главной таблицы меняются все подчиненые.
К сожалению незнаю как лишний раз невызывать Refresh например когда изменяется поле неотносяшееся к Master-Detail связи?
← →
Erik1 © (2004-12-17 13:56) [1]Тоесть мне нужно отличать Принудительный Refresh от простого изменения данных.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c