Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

ошибка в IBAlloc   Найти похожие ветки 

 
Desperado ©   (2004-08-27 09:15) [0]

Есть IBQuery, которая возвращает набор данных, состоящий из очень больших полей. Каждая запись весит очень прилично.
При первом открытии IBQuery все впорядке.
При втором возникает ошибка EOutOfMemory "Out of memory".
Эта ошибка возникает в процедуре IBAlloc (unit IB)
в строчке ReallocMem(Pointer(P), NewSize);.

IBQuery.BufferChunks равно 100000.
Если делать больше, то эта ошибка возникает с первого раза, если меньше - возникает Invalid Pointer Operation.

Как избавиться от этой проблемы?

Delphi5 SP1, SP2, IBX 5.04, использую borlndmm.dll (sharemem).
Программа - сервер приложений MIDAS.


 
s999   (2004-08-27 11:21) [1]


> Есть IBQuery, которая возвращает набор данных, состоящий
> из очень больших полей


Что значит из очень больших? В ширину очень больших? Или просто записей запрос возвращает много? Судя по играм с BufferChunks второе. Тогда что удивляться, просто память системы кончается, слишком большой объем.


 
Desperado ©   (2004-08-27 15:37) [2]

Это значит, что поля типа Varchar(8000) и таких в записи много.
Записей не так много. Вот.
А делать то что?


 
s999   (2004-08-27 16:12) [3]


> А делать то что?


Ну, первые варианты, что приходят в голову:

1. Varchar(8000) переделать в Blob.
2. Ограничивать кол-во записей, возвращаемых запросом.
3. Вместе с п.2 BufferChunks сделать меньше, чем 100000.
4. Если предыдущее невозможно, то, может быть, воспользоваться "малокэширующими" компонентами (gb_DataSets).


 
Desperado ©   (2004-08-28 08:20) [4]

попробуем, спасибо.



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

Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.699 c
14-1094234338
Profi
2004-09-03 21:58
2004.09.26
Работа с внешними устройствами


8-1088511384
_PG_
2004-06-29 16:16
2004.09.26
Длина строки в пикселах ...


1-1095086370
Lord de Mon
2004-09-13 18:39
2004.09.26
ShellExecute


14-1094330033
Piter
2004-09-05 00:33
2004.09.26
Где скачать SynEdit?


14-1094412910
Soft
2004-09-05 23:35
2004.09.26
Технические проблемы с совестью.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский