Есть у ADO замечательная фишка, позволяющая удобно работать с иерархическими рекордсетами использую сервис провайдер MSDataShape и его синтаксис. В принципе штука довольно удобная, при просмотре взаимосвязанных таблиц организованных по типу "титульная часть - табличная часть". Но удобно только просматривать. Траблы начинаются при попытке добавления новых записей. Т.е. если просто получить ссылки на рекордсеты, которые входят в его состав, то новая запись посредством метода AddNew нормально добавляется только в первый по уровню рекордсет (родительский). Если добавлять записи в дочерние рекордсеты, то запись нормально добавляется только если она не первая в списке. А вот если она первая и добавляется сразу после добавления записи в родительский рекордсет, то добавлять ее приходится с большими извращениями. Так как просто выполнить метод Update для родительского рекордсета и далее AddNew для подчиненного не прокатывает. Причем такие траблы хоть при использовании Data Environment, хоть без него.
Для того что-бы добавить первую подчиненную запись приходится делать перезапрос для самого верхнего рекордсета. А для того, что-бы после запроса рекордсет вернулся на ту запись, с которой производится работа, приходится мудрить с закладками. Да и стремно это - делать перезапрос, когда он по идее совсем бы был не нужен. На сайте MS http://technet.microsoft.com/ru-ru/subscriptions/ms807496 этот вопрос тоже никак не освещается. В интернете не нашел не одного примера с добавлением новых записей. Везде только просмотр.
И вот собственно и сам вопрос к тем, что пользуется такой фичей. Как правильно добавляются записи в такие иерархические рекордсеты?