Правильное добавление записей в иерархические рекордсеты ADO - VB
Формулировка задачи:
Суть проблемы следующая:
Как правильно добавляются записи в иерархические рекордсеты созданные, либо с использованием сервис провайдера MSDataShape, либо Data Environment?
Рекордсеты создаются без проблемы, в самый верхний по уровню рекордсет запись добавляется без проблем (метод AddNew). Если после добавления записи сразу сделать Update и добавить запись в подчиненный рекордсет, то такая запись не добавляется. Для того, чтобы добавить запись нужно сделать сделать перезапрос (Requery) для верхнего рекордсета и только потом запись без проблем можно добавить в подчиненный рекордсет. Следующие за первой подчиненной записью, другие записи добавляются без проблем. Метод с перезапросом конечно работает, но во первых это лишний перезапрос, а значит лишние тормоза, во вторых приходится сохранять/восстанавливать ту запись, с которой была работа до перезапроса и в третих для отключенного рекордсета перезапрос просто не применим.
Хотелось бы узнать как это делают другие, неужели с такими же извращениями?
Как правильно добавляются записи в иерархические рекордсеты созданные, либо с использованием сервис провайдера MSDataShape, либо Data Environment?
Рекордсеты создаются без проблемы, в самый верхний по уровню рекордсет запись добавляется без проблем (метод AddNew). Если после добавления записи сразу сделать Update и добавить запись в подчиненный рекордсет, то такая запись не добавляется. Для того, чтобы добавить запись нужно сделать сделать перезапрос (Requery) для верхнего рекордсета и только потом запись без проблем можно добавить в подчиненный рекордсет. Следующие за первой подчиненной записью, другие записи добавляются без проблем. Метод с перезапросом конечно работает, но во первых это лишний перезапрос, а значит лишние тормоза, во вторых приходится сохранять/восстанавливать ту запись, с которой была работа до перезапроса и в третих для отключенного рекордсета перезапрос просто не применим.
Хотелось бы узнать как это делают другие, неужели с такими же извращениями?
Решение задачи: «Правильное добавление записей в иерархические рекордсеты ADO»
textual
Листинг программы
If m_RS2.BOF Or m_RS2.EOF Then vBookmark = m_RS1.Bookmark dgData1.RefetchRow m_RS1.Bookmark = vBookmark End If
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д