|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Gustav
![]() Сталкивался с похожим поведением recordset'а при выполнении горячо любимого экспорта в Excel с помощью CopyFromRecordset (правда, на локальной машине).
Так вот, при выполнении экспорта кодом X++ нормально выводились все записи. Когда же вывод выполнялся кодом VBA внутри Excel (казалось бы!), то приходилось перед CopyFromRecordset вставлять recordSet.MoveFirst, так как без этой команды после заполнения рекордсета курсор всегда оказывался на последней записи и только ее и выводил. Теперь, не особо вдаваясь в подробности, для гарантии всегда вставляю этот MoveFirst. В данном же случае это не работает ряду причин: 1. Полученный RecordSet имеет CursorType = 0 - adOpenForwardOnly. Т.е. перемещение "назад" в принципе невозможно. Только вперед. 2. То единственное значение, которое все-таки выводится, это значение из первой записи выборки. Т.е. как раз с позиционированием все в порядке! В начале цикла указатель стоит на первой записи. Проблема именно с перемещением на следующую запись. В данном случае возникает неоднозначность в том, относительно чего эту самую следующую запись отсчитывать. "Теряется" понятие текущей записи. PS: Я пробовал делать MoveFirst(). Как и предполагалось - не помогает, хотя и ошибок не возникает. Просто игнорируется...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Gustav (2). |
Теги |
ado, ax2009, movenext, recordset |
|
![]() |
||||
Тема | Ответов | |||
Отладка на сервере | 6 | |||
update_recordset. Бага или фича? | 7 | |||
Вопрос по update_recordset | 5 | |||
Затраты учет\списание | 9 | |||
Формат даты на сервере и клиенте | 2 |
|