ADODB CopyFromRecordset - VB

Узнай цену своей работы

Формулировка задачи:

Всем добрый день!
делаю выгрузку с БД в Excel
Если результат селекта порядка 500тыс строк, то все выгружается нормально.
При большей выборке вылетает ошибка что нет памяти на строке:
Sheet.Range("A1").CopyFromRecordset rs
Реальная выборка порядка 5 млн. строк.
Можно как-то обвернуть в цикл чтоб по пол миллиона записывало, сохраняло в файл и дозаписывало дальше?
P.s. c VB впервые . делаю с помощью hta
спасибо

Решение задачи: «ADODB CopyFromRecordset»

textual
Листинг программы
Const RECORDS_PER_ITERATION = 500000
Dim r

REM rs - adodb.recordset
Do Until rs.EOF
    Set r = ' присваиваете переменной начало диапазона для выгрузки

    REM Function CopyFromRecordset(Data As Unknown, [MaxRows], [MaxColumns]) As Long
    r.CopyFromRecordset rs, RECORDS_PER_ITERATION

    Set r = Nothing

    REM сохраняете файл, или делаете другие действия, которые, как Вы считаете, спасут от Out of memory
Loop

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы