powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Утечка памяти при работе с DataSet
25 сообщений из 69, страница 2 из 3
Утечка памяти при работе с DataSet
    #39556308
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕРДобрый день. К дб гриду (TDBGridEh - компонент EhLib 8.0 build 8.0.023) прикручен датасет. FetchAll := False естественно, т.к записей возвращается много, до 100к. Имеется функционал по выводу данных из грида в эксель(самописный).
Возможно, отвечаю не совсем по заданному вопросу
Имеет ли смысл выгрузить все данные в грид DBGridEh1 и потом выгрузить все в Excel средствами от EhLib
следует использовать модуль DBGridEhImpExp
Код: pascal
1.
2.
uses
DBGridEhImpExp


и выгружать данные из таблицы в Excel без всякого гемора - всего лишь одной строчкой кода
Код: pascal
1.
ExportDBGridEhToXlsx(DBGridEh1, 'Тут нужно указать имя файла Excel',[]);


у меня по крайней мере работает и на бОльших данных
использую следующую связку: "Embarcadero® Delphi 10 Seattle Version 23.0.20618.2753" + "компонент EhLib 8.0 build 8.0.021"
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556320
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonкак раз таки Prev/First сделать не проблемаИнтересно, как, не храня буффер предыдущей записи на клиенте, когда на сервере её уже нет.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556325
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же...
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556329
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779шК0ДЕРДобрый день. К дб гриду (TDBGridEh - компонент EhLib 8.0 build 8.0.023) прикручен датасет. FetchAll := False естественно, т.к записей возвращается много, до 100к. Имеется функционал по выводу данных из грида в эксель(самописный).
Возможно, отвечаю не совсем по заданному вопросу
Имеет ли смысл выгрузить все данные в грид DBGridEh1 и потом выгрузить все в Excel средствами от EhLib
следует использовать модуль DBGridEhImpExp
Код: pascal
1.
2.
uses
DBGridEhImpExp


и выгружать данные из таблицы в Excel без всякого гемора - всего лишь одной строчкой кода
Код: pascal
1.
ExportDBGridEhToXlsx(DBGridEh1, 'Тут нужно указать имя файла Excel',[]);


у меня по крайней мере работает и на бОльших данных
использую следующую связку: "Embarcadero® Delphi 10 Seattle Version 23.0.20618.2753" + "компонент EhLib 8.0 build 8.0.021"
Совсем обалдели. В грид-то - зачем грузить?
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556335
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕР...Имеется функционал по выводу данных из грида в эксель(самописный). Для этого нужно знать общее кол-во записей в датасете...
Расскажи, пожалуйста - для чего тебе при выводе в эксель знать общее количество записей в датасете?
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556339
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

для того что бы содержимое грида выгрузить в Эксель
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556344
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕРVladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же...

Попробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556348
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДзнать общее количество записей в датасете?Vladimir779что бы содержимое грида выгрузить в Эксельне вижу взимосвязи
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556358
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779шК0ДЕРVladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же...

Попробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell

Это троллинг такой, что ли?
Или просто альтернативно одаренные общаются?
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556360
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДПопробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell

Это троллинг такой, что ли?
Или просто альтернативно одаренные общаются?[/quot]

Ну как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556362
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Что-то цитирование съехало напрочь :(
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556363
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать
Не только, а чтобы еще в 2 раза более правильным казалось, для самоутверждения, решение перейти на 64 бита.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556369
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_чччДзнать общее количество записей в датасете?Vladimir779что бы содержимое грида выгрузить в Эксельне вижу взимосвязи
я изначально указал "Возможно, отвечаю не совсем по заданному вопросу"
именно поэтому не видно никакой взаиомосвязи
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556370
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterчччДПопробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell
Это троллинг такой, что ли?
Или просто альтернативно одаренные общаются?
Ну как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться.[/quot]
Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ?
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556371
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться.
Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ?
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556380
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться.
Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ?
Ну, напрягись чуть-чуть.
Подсказки:
1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?"
2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать.
3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556434
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779,

Так я же уже всё расписал :) Если отображать в гриде не нужно, то незачем тащить набор в память. Если нужно, то нужно либо 64х, либо ограничивать размер выборки. Считать количество компонентой тоже не нужно, а запросом. Даже запрос написал :)

makhaonкак раз таки Prev/First сделать не проблема
YuRock Интересно, как, не храня буффер предыдущей записи на клиенте, когда на сервере её уже нет.

Да, точно, набор однонаправленный же. Неверно написал.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556436
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой сомневаюсь что пользователю понравится файл с 100к строк.

Посадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556443
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк.

Посадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам.
Мы недавно задание специальное выполняли, по реализации отчета несуразных размеров и структуры. Уж что там заказчик собирается с ним делать - не наша забота.
Возможно, он его (за неделю, не быстрее) распечатает, украсит подписями и печатями, погрузит на грузовики и отвезет в глубокий подземный бункер.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556465
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк.Был у меня случай, когда клиент возмутился тем, что в отчет в экселе попадают только первые 65535 строк. Вот тогда и пришлось на xlsx переходить)
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556482
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А некоторые по миллиону в Лукап пихают
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556494
Dunkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonЕсли нужно, то нужно либо 64х, либо ограничивать размер выборки. Считать количество компонентой тоже не нужно, а запросом. Даже запрос написал :)
64 бита не решат проблему времени при загрузке данных в датасет. Компонент тоже специфический и как раз выполняет select count(*) в CountAllRecords.

Как уже написали, грузить всё не нужно.
У TOracleDataSet есть свойство UniDirectional. Но лучше использовать TOracleQuery.
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556514
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНу, напрягись чуть-чуть.
Подсказки:
1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?"
2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать.
3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего.
Возможно, я чего-то недопонимаю, благодарю за наводку, в свободное время рассмотрю каждый пункт
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556526
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк.
Это справочники товара и прайс листы, пользователям(финансистам, маркетологам) именно НУЖНО, в противном случае и тему не завел бы.
DimaBrПосадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам.
Никакие вычисления там не требуются, а если бы и требовались, то производились исключительно на сервере...
...
Рейтинг: 0 / 0
Утечка памяти при работе с DataSet
    #39556563
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779чччДНу, напрягись чуть-чуть.
Подсказки:
1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?"
2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать.
3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего.
Возможно, я чего-то недопонимаю, благодарю за наводку, в свободное время рассмотрю каждый пункт
Ну да, думать некогда... трясти надо...
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Утечка памяти при работе с DataSet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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