|
|
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРДобрый день. К дб гриду (TDBGridEh - компонент EhLib 8.0 build 8.0.023) прикручен датасет. FetchAll := False естественно, т.к записей возвращается много, до 100к. Имеется функционал по выводу данных из грида в эксель(самописный). Возможно, отвечаю не совсем по заданному вопросу Имеет ли смысл выгрузить все данные в грид DBGridEh1 и потом выгрузить все в Excel средствами от EhLib следует использовать модуль DBGridEhImpExp Код: pascal 1. 2. и выгружать данные из таблицы в Excel без всякого гемора - всего лишь одной строчкой кода Код: pascal 1. у меня по крайней мере работает и на бОльших данных использую следующую связку: "Embarcadero® Delphi 10 Seattle Version 23.0.20618.2753" + "компонент EhLib 8.0 build 8.0.021" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 16:39:39 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
makhaonкак раз таки Prev/First сделать не проблемаИнтересно, как, не храня буффер предыдущей записи на клиенте, когда на сервере её уже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 16:50:24 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 17:05:19 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779шК0ДЕРДобрый день. К дб гриду (TDBGridEh - компонент EhLib 8.0 build 8.0.023) прикручен датасет. FetchAll := False естественно, т.к записей возвращается много, до 100к. Имеется функционал по выводу данных из грида в эксель(самописный). Возможно, отвечаю не совсем по заданному вопросу Имеет ли смысл выгрузить все данные в грид DBGridEh1 и потом выгрузить все в Excel средствами от EhLib следует использовать модуль DBGridEhImpExp Код: pascal 1. 2. и выгружать данные из таблицы в Excel без всякого гемора - всего лишь одной строчкой кода Код: pascal 1. у меня по крайней мере работает и на бОльших данных использую следующую связку: "Embarcadero® Delphi 10 Seattle Version 23.0.20618.2753" + "компонент EhLib 8.0 build 8.0.021" Совсем обалдели. В грид-то - зачем грузить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 17:08:51 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
шК0ДЕР...Имеется функционал по выводу данных из грида в эксель(самописный). Для этого нужно знать общее кол-во записей в датасете... Расскажи, пожалуйста - для чего тебе при выводе в эксель знать общее количество записей в датасете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 17:25:50 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
чччД, для того что бы содержимое грида выгрузить в Эксель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 17:45:00 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРVladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же... Попробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 17:48:53 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
чччДзнать общее количество записей в датасете?Vladimir779что бы содержимое грида выгрузить в Эксельне вижу взимосвязи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 18:09:12 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779шК0ДЕРVladimir779, на рабочей форме пользователя такое кол-во позиций явно будет лишним. Придется в момент печати выводить в грид все позиции, а после печати обратно скрыть лишнюю тонну данных. Завтра обязательно попробую. Интересно на сколько быстро будет весь объем в грид выгружаться, т.к событие OnDrawDataCell обрабатывается. Код небольшой, но все же... Попробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell Это троллинг такой, что ли? Или просто альтернативно одаренные общаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 18:43:04 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
чччДПопробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell Это троллинг такой, что ли? Или просто альтернативно одаренные общаются?[/quot] Ну как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 18:56:15 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
чччД, Что-то цитирование съехало напрочь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 18:56:50 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать Не только, а чтобы еще в 2 раза более правильным казалось, для самоутверждения, решение перейти на 64 бита. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 18:58:51 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_чччДзнать общее количество записей в датасете?Vladimir779что бы содержимое грида выгрузить в Эксельне вижу взимосвязи я изначально указал "Возможно, отвечаю не совсем по заданному вопросу" именно поэтому не видно никакой взаиомосвязи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 19:30:03 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DarkMasterчччДПопробуй вариант со скрытым гридом от глаз пользователя, грид для выгрузки данных в Эксель, в этом гриде можешь не использовать событие OnDrawDataCell Это троллинг такой, что ли? Или просто альтернативно одаренные общаются? Ну как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться.[/quot] Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 19:31:38 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться. Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 19:32:54 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779DarkMasterНу как это зачем? Чтобы побольше граблей в темной комнате раскидать, а потом героически с ними бороться. Критиковать все могут, а можешь предложить рабочий вариант, и что бы без граблей ? Ну, напрягись чуть-чуть. Подсказки: 1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?" 2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать. 3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 20:02:50 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779, Так я же уже всё расписал :) Если отображать в гриде не нужно, то незачем тащить набор в память. Если нужно, то нужно либо 64х, либо ограничивать размер выборки. Считать количество компонентой тоже не нужно, а запросом. Даже запрос написал :) makhaonкак раз таки Prev/First сделать не проблема YuRock Интересно, как, не храня буффер предыдущей записи на клиенте, когда на сервере её уже нет. Да, точно, набор однонаправленный же. Неверно написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 22:51:12 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Ой сомневаюсь что пользователю понравится файл с 100к строк. Посадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 22:55:28 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк. Посадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам. Мы недавно задание специальное выполняли, по реализации отчета несуразных размеров и структуры. Уж что там заказчик собирается с ним делать - не наша забота. Возможно, он его (за неделю, не быстрее) распечатает, украсит подписями и печатями, погрузит на грузовики и отвезет в глубокий подземный бункер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 23:03:28 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк.Был у меня случай, когда клиент возмутился тем, что в отчет в экселе попадают только первые 65535 строк. Вот тогда и пришлось на xlsx переходить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 23:57:05 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
А некоторые по миллиону в Лукап пихают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 01:26:42 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
makhaonЕсли нужно, то нужно либо 64х, либо ограничивать размер выборки. Считать количество компонентой тоже не нужно, а запросом. Даже запрос написал :) 64 бита не решат проблему времени при загрузке данных в датасет. Компонент тоже специфический и как раз выполняет select count(*) в CountAllRecords. Как уже написали, грузить всё не нужно. У TOracleDataSet есть свойство UniDirectional. Но лучше использовать TOracleQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 02:54:54 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
чччДНу, напрягись чуть-чуть. Подсказки: 1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?" 2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать. 3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего. Возможно, я чего-то недопонимаю, благодарю за наводку, в свободное время рассмотрю каждый пункт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 07:09:46 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
DimaBrОй сомневаюсь что пользователю понравится файл с 100к строк. Это справочники товара и прайс листы, пользователям(финансистам, маркетологам) именно НУЖНО, в противном случае и тему не завел бы. DimaBrПосадить бы дарование, чтобы написал формулу в полученном Экселе для умножения суммы 1,3,5,7,9 стоки на разнность в 2,4,6,8,10, в каждом чётном десятке. По всем 100к строчкам. Никакие вычисления там не требуются, а если бы и требовались, то производились исключительно на сервере... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 08:11:45 |
|
||
|
Утечка памяти при работе с DataSet
|
|||
|---|---|---|---|
|
#18+
Vladimir779чччДНу, напрягись чуть-чуть. Подсказки: 1. Задумайся по поводу: "а для чего грузить весь датасет в память, если экспорт в MS Excel все равно выполняется построчно?" 2. И тем более - для чего к этоve несчастному датасету подключать TDBGridEh, если ты вообще не собираешься этот грид показывать. 3. Посмотри на реализацию класса TDBGridEhExportAsXLS - там комментария больше, чем кода. А полезного кода - пара десятков строк всего. Возможно, я чего-то недопонимаю, благодарю за наводку, в свободное время рассмотрю каждый пункт Ну да, думать некогда... трясти надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 09:17:45 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39556358&tid=2041465]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 379ms |

| 0 / 0 |
