Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
Страдалецъ Member Откуда: Мурманск Сообщений: 1438 |
Видимо я делаю что-то не так, но если я делаю клон курсора по мастеру и по детали, то перебор записей в клоне курсора для мастера не приводит к обновлению данных для клона курсора в детали. Делаю я так:mtFiles := TFDMemTable.Create(nil); mtFiles.CloneCursor(FDFiles); mtMetering := TFDMemTable.Create(nil); mtMetering.CloneCursor(FDMetering,True,True); и теперь если я буду перебирать записи для клона мастера while not mtFiles.Eof do begin OutputDebugString(PChar(mtFiles['RecID'])) OutputDebugString(PChar(mtMetering['FileID'])); mtFiles.Next; end; Естественно отношение мастер-деталь для исходных FDFiles и FDMetering настроено и хорошо работает. |
13 окт 19, 19:18 [21993191] Ответить | Цитировать Сообщить модератору |
Dmitry Arefiev Member Откуда: Сообщений: 9912 |
Мастер-детали и клоны никак не связаны. Клонам нужны свои установки. |
13 окт 19, 19:36 [21993202] Ответить | Цитировать Сообщить модератору |
Страдалецъ Member Откуда: Мурманск Сообщений: 1438 |
А как тогда правильно сделать? Мне категорически не хочется создавать копию исходных запросов, но видимо иначе никак. |
13 окт 19, 19:38 [21993204] Ответить | Цитировать Сообщить модератору |
Hammer Member Откуда: Москва Сообщений: 493 |
var ... dsMaster: TDataSource; ... begin ... mtFiles := TFDMemTable.Create(nil); try mtFiles.CloneCursor(FDFiles); dsMaster := TDataSource.Create(nil); try dsMaster.DataSet := mtFiles; mtMetering := TFDMemTable.Create(nil); try mtMetering.MasterSource := dsMaster; mtMetering.MasterFields := mtMetering.DetailFields := mtMetering.CloneCursor(FDMetering,True,True); ... finally FreeAndNil(mtMetering); end; finally FreeAndNil(dsMaster); end; finally FreeAndNil(mtFiles); end; ... end Не? |
||
15 окт 19, 10:50 [21994367] Ответить | Цитировать Сообщить модератору |
Все форумы / Delphi | ![]() |