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