Приветствую всех присутствующих и отсутствующих!
Есть база данных Access (одна таблица - 300 тыс. записей). Необходимо выгружать данные в Excel корректировать их и загружать обратно в базу (обновлять записи). Данные получаю с помощью ADO, но возникла проблема - утечка памяти. При каждом запросе Excel увеличивает количество используемой оперативной памяти. Получается так, что при запросе большого объема данных после нескольких итераций системные ресурсы заканчиваются. Помогает только перезапуск приложения. Как с этим бороться?
Есть база данных Access (одна таблица - 300 тыс. записей). Необходимо выгружать данные в Excel корректировать их и загружать обратно в базу (обновлять записи). Данные получаю с помощью ADO, но возникла проблема - утечка памяти. При каждом запросе Excel увеличивает количество используемой оперативной памяти. Получается так, что при запросе большого объема данных после нескольких итераций системные ресурсы заканчиваются. Помогает только перезапуск приложения. Как с этим бороться?
Скрытый текст |
|---|
| Public Sub Get_Data(ByRef vaData As Variant, ByVal strSQL As String, Optional blTranspose As Boolean = True) 'Запрос из базы записей указанной таблицы, возвращение их в виде массива 'Генерация строки подключения Call CreateConnectionString Dim Con As New ADODB.Connection Dim Rst As New ADODB.Recordset Con.Open ConnectionString Rst.Open strSQL, Con If Not Rst.EOF Then vaData = Rst.GetRows If blTranspose Then vaData = TransposeArray(vaData) End If Rst.Close Set Rst = Nothing Con.Close Set Con = Nothing End Sub |
Изменено: - 16.09.2014 12:59:36