Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BDE Out of memory на 200000+ записи выборки [D6, IB6.x]


Saddam ©   (2004-01-30 18:47:00) 

Пользовал BDE, IBX, пробовал ставить Unidirectional=false, при конекте через BDE передоключался к БД через каждые 5000 записей. Нифига не помогает.
Переход на IBX увеличил кол-во записей до 300000, но ошибка вылетела. Как работать с большими выборками на через BDE/IBX?
PS:
Большая выборка = более 500 тыс. записей.
Работать = пробежать по всем записям.


Sergey_Masloff   (2004-02-02 10:29:00) [1]

Saddam (02.02.04 10:10) [4]
Ну конечно с IBTable это бред. Делаешь IBSQL с обеиx сторон и в цикле через параметризованый запрос фигачишь. Еще почитай про External table но это наверное в твоем случае не совсем то.


Ega23   (2004-02-02 10:16:00) [2]

А разве напрямую никак нельзя? Обязательно через клиента надо?


Кщд   (2004-02-02 10:13:00) [3]

как вариант: BatchOutput-BatchInput


Saddam   (2004-02-02 10:10:00) [4]

Моя задача перетащить некоторые данные из одногй БД в другую. При чем струткура БД идентична. Изначально предполагалось, что исходная может быть IB или Orcale, но потом пришлось ограничиться только IB. Применая - IB. Для этого я делаю IBQuery из исходной, и пихаю в IBTable приемной. Боюсь теперь придется вставлять не в IBTable, а делать insert в IBQuery, чтобы приемнй Dataset не отжирал память. Однако, боюсь, что на 700000 опять глючить начнет. :(
У кого есть предложения?
Переход на нестандартные компоненты невозможен по ТЗ.
Возможен переход на IB API :(


Sergey_Masloff   (2004-01-30 22:28:00) [5]

SasaR (30.01.04 19:12) [1]
>В смысле вы пробовали на BDE, плюнули, перешли на IBX, плюнули
>(но немного позже) ? Моё предложение - перейти на FIBPlus >копоненты - я пробегал ими даже по 700000 записям.
И о чем это говорит? Вобщем, FIBPlus хорошие компоненты, но не настолько лучше IBX насколько это пытаются представить ;-)

Я в IBX регулярно и по миллиону строк таскаю и больше - вобщем-то лимита нет. Для тех кто скажет клиенту столько не нужно - усмехнусь. Смотря что за клиент. Если человек то и 1000 записей не нужно конечно. Конкретно в моем случае ХП формирует XML для передачи данных во внешнюю систему и возвращает его построчно. Миллион строк и больше - обычный размер. Никаких проблем.

P.S. Автору вопроса. Вы же их не в DataSet тащите? 300000 записей? Если да то сочувствую и категорически не советую.


Michail Dalakov   (2004-01-30 19:22:00) [6]

>Работать = пробежать по всем записям.

Для чего?


SasaR   (2004-01-30 19:12:00) [7]

В смысле вы пробовали на BDE, плюнули, перешли на IBX, плюнули (но немного позже) ? Моё предложение - перейти на FIBPlus копоненты - я пробегал ими даже по 700000 записям. Гиблый номер - очень долго. Гораздо быстрее (если возможно в Вашем случае) - сохранённая процедура, в которой FOR SELECT DO + индексы.
Прогноз: наверняка тоже вскоре не воздержитесь от плевков, но уже на IB :))


Наверх

Титульная страница Поиск, карта сайта Написать письмо