![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
отследить переоткрытые detail DataSet’а в master/detail [D6, MSSQL]
anton_cor © (2004-03-25 09:37:00)Использую ADODataSet и EhDBGrid 3.3. Есть два датасета в связке master/detail. Подчиненный, в том числе, отображает вычисляемой (на сервере) поле. Для того что бы оно обновлялось в случае изменения делаю:
DM.dRequest.Open; {master}
DM.dTovar.Open; P{detail}
DM.dTovar.Properties['Update Resync'].Value := adResyncAutoIncrement + adResyncUpdates + adResyncInserts;
Работает. НО. Когда переходим в master датасете на другую строчку то весь эффект пропадает. Видимо подчиненные ДС переоткрывается и Properties сбрасываются.
Хорошо, значит решение в том что бы каждый раз когда открывется подчиненный, устанавливать ему нужные свойства. Вот этого у меня и не получается. События типа
AfterOpen не срабатывают при неявном переоткрытые подчиненного ДС.
Как отследить переоткрытые подчиненного DataSet’а?
sniknik (2004-03-26 10:17:00) [1]> OnDataChange у ADODataSet нет.
TDataSource.OnDataChange
anton_cor (2004-03-26 09:09:00) [2]2stud:
Большое спасибо за ответы! Но и этот вариант тоже не работает. Хотя это меня удивило. Почему так - не знаю. Надо в исходники залазить - не хочу...
2Johnmen:
А вот за эту идею - спасибо! Как сам об этом не подумал?! :)
stud (2004-03-25 10:21:00) [3]OnRecordsetChangeComplete
Johnmen (2004-03-25 10:13:00) [4]>anton_cor ©
AfterScroll мастерного м.б. подойдет...
anton_cor (2004-03-25 10:07:00) [5]2stud:
еще раз и на ангельском, если не сложно
OnDataChange у ADODataSet нет.
2Johnmen:
тип курсора у обоих DS clUseClient.
Провожу простой эксперимент: создаем
procedure TDM.dTovarAfterOpen(DataSet: TDataSet);
begin
ShowMessage('AfterOpen');
end;
И начинаем гулять по обоим гридам. Не срабатывает. На что вешать то надо – объясни глупому.
Johnmen (2004-03-25 09:55:00) [6]>AfterOpen не срабатывают при неявном переоткрытые подчиненного ДС.
Срабатывают. А дело в том, что "переоткрытия" не происходит...:)
Кстати, какой CursorLocation ?
stud (2004-03-25 09:46:00) [7]попробовать ондадачеинч