AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2011, 18:31   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Gustav Посмотреть сообщение
Сталкивался с похожим поведением recordset'а при выполнении горячо любимого экспорта в Excel с помощью CopyFromRecordset (правда, на локальной машине).

Так вот, при выполнении экспорта кодом X++ нормально выводились все записи. Когда же вывод выполнялся кодом VBA внутри Excel (казалось бы!), то приходилось перед CopyFromRecordset вставлять recordSet.MoveFirst, так как без этой команды после заполнения рекордсета курсор всегда оказывался на последней записи и только ее и выводил.

Теперь, не особо вдаваясь в подробности, для гарантии всегда вставляю этот MoveFirst.
Ну, я здесь не вижу противоречия. Точнее, надо уточнить как внутри себе Excel передает RecordSet в метод CopyFromRecordset(). Вполне возможно, что действительно запоминает текущее положение указателя. Ну, а раз текущей является последняя запись, то последнюю и выводит.

В данном же случае это не работает ряду причин:

1. Полученный RecordSet имеет CursorType = 0 - adOpenForwardOnly. Т.е. перемещение "назад" в принципе невозможно. Только вперед.

2. То единственное значение, которое все-таки выводится, это значение из первой записи выборки. Т.е. как раз с позиционированием все в порядке! В начале цикла указатель стоит на первой записи.

Проблема именно с перемещением на следующую запись. В данном случае возникает неоднозначность в том, относительно чего эту самую следующую запись отсчитывать. "Теряется" понятие текущей записи.

PS: Я пробовал делать MoveFirst(). Как и предполагалось - не помогает, хотя и ошибок не возникает. Просто игнорируется...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Gustav (2).
Теги
ado, ax2009, movenext, recordset

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отладка на сервере Bega DAX: Программирование 6 21.02.2011 15:38
update_recordset. Бага или фича? Lucky13 DAX: Программирование 7 08.04.2009 17:33
Вопрос по update_recordset cherv DAX: Программирование 5 14.07.2006 14:28
Затраты учет\списание AlexeyBP DAX: Функционал 9 12.12.2005 18:19
Формат даты на сервере и клиенте bio_unit DAX: Администрирование 2 25.08.2004 16:44

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:22.