Добавление данных в иерархичекий рекордсет ADO

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Добавление данных в иерархичекий рекордсет ADO

Сообщение ger_kar » 01.06.2013 (Сб) 12:51

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

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Добавление данных в иерархичекий рекордсет ADO

Сообщение ger_kar » 01.06.2013 (Сб) 16:27

Кстати если рекордсет будет отвязанным, то тогда и Requery не поможет. И как тогда быть?
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 78

    TopList