Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB CopyFromRecordset / 2 сообщений из 2, страница 1 из 1
07.02.2018, 18:51
    #39598477
Moss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB CopyFromRecordset
Всем добрый день!
делаю выгрузку с БД в Excel
Если результат селекта порядка 500тыс строк, то все выгружается нормально.
При большей выборке вылетает ошибка что нет памяти на строке:

Sheet.Range("A1").CopyFromRecordset rs

Реальная выборка порядка 5 млн. строк.

Можно как-то обвернуть в цикл чтоб по пол миллиона записывало, сохраняло в файл и дозаписывало дальше?

P.s. c VB впервые . делаю с помощью hta

спасибо
...
Рейтинг: 0 / 0
09.02.2018, 02:14
    #39599450
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB CopyFromRecordset
Moss,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB CopyFromRecordset / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]