![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDataSetProvider.OnUpdateError [Delphi, Windows]
val_5 © (2003-11-12 15:11:00)Имеется DataSetMaster(это TSQLDataSet) и подклученный к нему (через TDataSource) DataSetDetail. К TDataSetProvider подключен DataSetMaster. Вопрос - как в TDataSetProvider.OnUpdateError определить - при работе с каким dataset-ом, главным или детальным, произошла ошибка.
val_5 (2003-11-13 17:05:00) [1]Я нашол решение. В параметре DataSet ( который передается в TDataSetProvider.OnUpdateError ) берем DataSet.DataSetField :
IF DataSet.DataSetField = nil then
ошибка произошла при Update записей из DataSetMaster,
ссылка на него это TDataSetProvider(Sender).DataSet
ELSE
ошибка произошла при Update записей из DataSetDetail,
его имя (TDataSet.Name) содержится в DataSet.DataSetField.FieldName !
НО КАК ОПРЕДЕЛИТЬ ССЫЛКУ НА НЕГО ?
Можно предположить что у DataSetMaster и DataSetDetail один и тот же Owner, тогда :
OwnerSourceDataSet:=TDataSetProvider(Sender).DataSet.Owner;
for I:=0 to OwnerSourceDataSet.ComponentCount - 1 do
if ( OwnerSourceDataSet.Components[I] is TDataSet ) and
( OwnerSourceDataSet.Components[I].Name = DataSet.DataSetField.FieldName ) then begin
SourceDataSet:=TDataSet(OwnerSourceDataSet.Components[I]);
Break;
end;
НО МОЖЕТ МОЖНО КАК ТО ПРОЩЕ ???