powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / pFibDataset - скинуть буфер на диск для экономии памяти
25 сообщений из 80, страница 2 из 4
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952491
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ

Понятно. Ставишь галку Unidirectional в True, в TpFIBDataSet, и всё.

Разве по такому датасету можно свободно бегать в гриде взад-вперед?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952492
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
ъъъъъ

Понятно. Ставишь галку Unidirectional в True, в TpFIBDataSet, и всё.

Разве по такому датасету можно свободно бегать в гриде взад-вперед?

А в отчете это тебе нужно?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952493
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я как-то теряюсь: "грид", "отчет". Давай отделим?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952494
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
отделяй мух от котлет - считай "итого" отдельным небуферизированным запросом/датасетом

Можно, конечно, суммы, отдельно считать. Но не в этом суть. Ну выведу я клиенту фетч первых 12 записей, а дальше если захочет, то пусть идет. Не годится. Ибо полный фетч занять очень много времени может, а надо, чтобы листалось с приемлемой скоростью, пусть там хотя бы 300 тыс записей.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952497
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> Можно, конечно, суммы, отдельно считать. Но не в этом суть

А в чём ещё? Для чего ещё клиент может
захотеть открыть журнал на 100тыщ записей?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952498
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Я как-то теряюсь: "грид", "отчет". Давай отделим?

Окно с выводом сумм и с гридом, отображающим все данные. Об этом говорю.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952501
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
ъъъъъ
Я как-то теряюсь: "грид", "отчет". Давай отделим?

Окно с выводом сумм и с гридом, отображающим все данные. Об этом говорю.


Ну, если хочется грид - то пусть будет грид. Считай id's записей в массив, это быстро. А прочие поля показывай при запросе грида на их отображение. Это любой грид умеет.
А суммы показывай как результат отдельного запроса. Select (sum) и т.д.

Только нафига грид - непонятно. Есть же генератор отчетов.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952503
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ> Только нафига грид - непонятно. Есть же генератор отчетов.

В гриде показывать быстрее/удобнее (по умолчанию).
Задал фильтр "за последние 10 лет" - и вжиииик, готово.
А генератор рисовать эти сотни страниц полчаса будет.

Интерфейс кривой, переделывать надо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952504
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Что такое "генератор отчетов"?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952506
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
ъъъъъ,

Что такое "генератор отчетов"?

Ну, ё.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952513
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> Что такое "генератор отчетов"?

FastReport и т.д. На печать ты откуда выводишь,
"прямо из грида"? Пред.сохранённые отчёты же
у тебя есть ("журнал продаж", "движение товаров",
"складские остатки" и пр.) ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952524
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот журнал продаж, за 3 недели, по всем 80 аптекам предприятия. 500 тыс записей в результате выдал. Выдавал (то есть полный фетч) 170 секунд. Приложение в памяти заняло 1.1 гига. pfibdataset.savetofile() выгрузил всё содержимое в файл размером 900мб, кстати, за какие-то 4 секунды, кстати. Теперь выгружаю полученный результат в DBF-файл с помощью TDBF. Получился файл размером 6 гиг. Если открыть этот файл в TDBF (5 секунд на открытие) и отобразить его в гриде, то приложение занимает всего 27мб в оперативке, и летаем с первой до последней записи циклом while not eof do next. за 6 секунд. Сиди, разглядывай свой грид, сколько влезет, всё летает.

В своем рабочем BDE-приложении, работающем с базой Paradox, этот журнал выходит на том же компе за 5 минут. Листай сколько хочешь, приложение занимает 100мб в оперативке. Правда, там многие поля калькулируются на лету, что на скорость листания влияет, но не так критично. В новом приложении с Firebird-базой я все поля в таблице пытаюсь выводить одним запросом, отдельным потоком к тому же, потом передаю в форму с гридом.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952525
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ууу как всё запущено.

А кто у вас "главный погромист"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952529
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Ага, значит, фастрепорт. Ну, фастрепорт я использую для печати уже готового результата, если клиенту захотелось его напечатать, что далеко не всегда. Как стандартный отображатель данных на экране я его не использую. Гораздо интереснее, по-моему, всегда вывести в окошке с гридом и суммами, откуда и выбросить можно хоть куда, хоть в эксель, чем часто пользуются аналитики, и еще куча всяких действий, например перехода в другие документы и формы. И кнопка печати вот, как одно из действий, а там куча разных вариантов этой печатной формы, у каждого клиента своя. То есть в печатную форму передается датасет этот, еще какие-нибудь параметры, а там рисуй что хочешь, на месте у клиента прямо. Но чтобы сразу на экран готовое через фастрепорт - это только в случае, если какой-то совсем нестандартный отчет, который не включается в экзешник, а только у этого пользователя. Да и то, как там с потоками работать в фастрепорте - еще разбираться надо будет. Сейчас же я открываю форму, указываю параметры запроса (период дат, например), нажимаю кнопку "открыть", дальше форма думает, а я могу в программе другими делами заниматься, еще пару отчетов-форм открыть, например.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952531
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дичь какая-то. Сырые данные в таком объеме никому не нужны.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952532
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,
Что неправильно, расскажите, если не сильно сложно.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952533
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,
У вас нет такого отчета, как журнал продаж?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952535
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,
У кого у нас? Я единственный. Научить некому.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952536
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> Как стандартный отображатель данных на экране я его не использую.
V.Borzov> Гораздо интереснее, по-моему, всегда вывести в окошке с гридом и суммами

Не 100тыщ записей же.

Понятно, что пользователь может задать
такой фильтр, но только ради итогов итп.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952537
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
V.Borzov> Что такое "генератор отчетов"?

FastReport и т.д. На печать ты откуда выводишь,
"прямо из грида"? Пред.сохранённые отчёты же
у тебя есть ("журнал продаж", "движение товаров",
"складские остатки" и пр.) ?


Никому не интересно это в виде превью в фастрепорте. В окне у людей куча кнопок с кучей всяких действий.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952539
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> У кого у нас? Я единственный.

А "система" на каком этапе разработки?
Или вы купили "филиалы", в которых
у каждой свой способ учёта?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952543
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам

Не 100тыщ записей же.

Понятно, что пользователь может задать
такой фильтр, но только ради итогов итп.


Хорошо, рассуждаем: вот есть отчет "Журнал продаж". Я не знаю, зачем он им там нужен, но еще лет 22 назад меня попросили такой отчет сделать. Сделал. У кого-то это больше, у кого-то это меньше. Вот у клиента самого жирного сейчас за один день по всем АП журнал в сумме выдает 36184 строк . Далее я встаю перед выбором: либо запрещать клиенту этому открывать этот отчет более чем за 1 день, потому что это зашквар, то есть признаться в том, что этот отчет не работоспособен на таких объемах. Либо заставить его высунуть всё это так или иначе, а юзер уж пусть сам решает, где ему удобнее смотреть суммы - в журнале отпуска товаров или в сводной ведомости реализации по складам, где 80 строк. Какой наш выбор?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952544
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,
Старой BDE системе 22 года, я создал её в 1998 году. Сейчас пытаюсь, наконец, перетащить в Firebird, а фактически - новая система пишется, с нуля практически, но на основе всё тех же аналитических форм. Но, поскольку подходы при работе с данными совершенно другие тут, то постоянно приходится ломать мозги на вещах, над которыми раньше даже и не задумывался.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952547
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
ъъъъъ,
У вас нет такого отчета, как журнал продаж?

Пользовательские наборы данных в таких объемах - не формируются, хотя данных реально дохрена.
При отображении данные всегда как-то сгруппированы. Примерно, как в файловой системе Windows, только признаков группировки больше. А если пользователь ввалил в один каталог 500 000 записей, а потом страдает, что проводник завис - да и плевать.
Ну да, датасеты не используются, грузится только структура и id's документов. Поля загружается лишь при отображении, плюс какой-то кэш, чтобы при листании вверх-вниз повторно часто не грузить.
Никаких сумм не показывается, только в отчетах (которые "генераторы").
Суммы показываются в небольших датасетах: например, при формировании заказов.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952548
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
Никому не интересно это в виде превью в фастрепорте. В окне у людей куча кнопок с кучей всяких действий.

Это просто ты так сделал, и теперь думаешь, что так правильно.
...
Рейтинг: 0 / 0
25 сообщений из 80, страница 2 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / pFibDataset - скинуть буфер на диск для экономии памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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