Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Как закрывать пройденные записи в OracleDataSet   Найти похожие ветки 

 
ali_tash   (2005-11-02 19:23) [0]

Проблема такая:
я выбираю данные из таблицы с большим количеством записей
в OracleDataSet и в цикле их все перебираю.
На очень больших таблицах выдаётся сообщение OutofMemory.даже если свойство QueryAllRecords:= False
то память всё равно кончится но позже.
Можно конечно надстроить ещё один цикл и выбирать по 1000
записей, но хотелось бы узнать можно ли освободить те записи которые я уже прошёл, т.е. паралельно с открытием следующей порции записей закрывать предыдущие ?


 
umbra ©   (2005-11-02 20:01) [1]

нет.


 
Fay ©   (2005-11-02 20:22) [2]

2 ali_tash   (02.11.05 19:23)
Unidirectional ?


 
roottim ©   (2005-11-03 09:13) [3]

Делай на сервере...
declare
...
begin
 cursor c in (select ... from ...)
 loop
 end loop;
end;


а может update достатточен


 
ANB ©   (2005-11-03 09:26) [4]

Я так понимаю это DOA ? Замени TOracleDataSet на TOracleQuery. И будет тебе счастье.


 
Sergey13 ©   (2005-11-03 09:49) [5]

А еще можно попробовать не работать с Ораклом как с Парадоксом.


 
ANB ©   (2005-11-03 09:51) [6]


> Sergey13 ©   (03.11.05 09:49) [5]

Тебе нужно перекачать в MS SQL всю таблицу (точнее запрос из нескольких). При этом провести логическую обработку данных. Легче всего это делать клиентом на делфи.


 
Sergey13 ©   (2005-11-03 10:03) [7]

2 [6] ANB ©   (03.11.05 09:51)
А тут перекачка? Не разглядел. Да и при перекачке необязательно тянуть сразу все.


 
ANB ©   (2005-11-03 10:19) [8]


> Sergey13 ©   (03.11.05 10:03) [7]

Я уже собирался тоже пилить на порции, да опробовал Query и не стал. Кстати, TOracleQuery не является дейтасетом со всеми вытекающими.


 
Курдль ©   (2005-11-03 11:28) [9]


> ali_tash   (02.11.05 19:23)
> я выбираю данные из таблицы с большим количеством записей
> в OracleDataSet и в цикле их все перебираю.
> На очень больших таблицах выдаётся сообщение OutofMemory.

А нельзя ли уточнить цифру "очень больших".
Помницца, у меня была тестовая прога для оценки быстродействия. Там были многомиллионные датасэты и никто ни разу не ругнулся. Не могла ли закрастся в код ошибка с не освобождаемым ресурсом?


 
ANB ©   (2005-11-03 11:32) [10]


> Курдль ©   (03.11.05 11:28) [9]

на милионе записей уже упадет. Это особенность TOracleDataSet - уже зафетченные записи он держит в памяти.


 
Val ©   (2005-11-03 12:24) [11]

>[6] ANB ©   (03.11.05 09:51)
фиг знает. есть еще sqlloader...


 
ANB ©   (2005-11-03 12:34) [12]


> Val ©   (03.11.05 12:24) [11]

лоадер в ораклу все загружает. Связь MS SQL - Oracle - просто ужасная. Что с одной, что с другой стороны. Просто перетянуть данные еще можно, а сложную обработку при этом фиг сделаешь.


 
Val ©   (2005-11-03 12:39) [13]

я имею ввиду загрузку в оракл лоадером и обработку с помощью pl\sql на сервере, как альтернативу перегонов через клиент и обработку на нем.


 
Fay ©   (2005-11-03 13:18) [14]

2 ali_tash   (02.11.05 19:23)
Какая версия DOA?


 
ANB ©   (2005-11-03 13:57) [15]


> Val ©   (03.11.05 12:39) [13]

Так мы из оракла в MS SQL данные перегоняли


 
Val ©   (2005-11-03 14:09) [16]

ааааа :) я не знаю про аналогичную штуковину в MS SQL ничего, но, вероятно, должна быть..то есть делаем то же самое, только наоборот :)


 
ali_tash   (2005-11-03 21:34) [17]

Unidirectional - OK
 Спасибо.


 
Fay ©   (2005-11-03 23:04) [18]

2 ali_tash   (03.11.05 21:34) [17]
Вот и славно! А то я уже подумал, что не понял вопрос.



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.052 c
2-1133851445
ORMADA
2005-12-06 09:44
2005.12.25
MDI


2-1134038542
kyn66
2005-12-08 13:42
2005.12.25
Данные из таблицы показать в ComboBox


10-1109863493
Shaden
2005-03-03 18:24
2005.12.25
Midas


6-1127068212
Кабан555
2005-09-18 22:30
2005.12.25
CllientSoket и ServerSoket


2-1133850067
Evgenxxxx
2005-12-06 09:21
2005.12.25
Преобразование типов