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