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

Есть ли в pFibDataset штатное средство, чтобы скинуть буфер на диск, какого бы размера он там ни был, и потом отображать его без существенных затрат памяти, в гриде, например? Да еще и отцепившись от базы в дальнейшем. Есть возможность скинуть содержимое на диск, но вот пользоваться этим как, кроме как обратно целиком закачать с тем же самым расходом памяти... Писать свой датасет, который читает из этого файла, только, или есть что-то штатное в FibPlus, а я в упор не вижу этого?

Есть CacheModelOptions, который при выполнении определенных условий вживую будет лазить в базу за данными, храня в памяти ограниченное кол-во записей, и вроде замечательно выглядит, но не всё гладко там, например с recno, может, еще что-то какие глюки полезут... Да и от базы отцепиться хотелось бы.

Спасибо.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952297
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тест на эрудицию, или просто лень смотреть документацию и исходники?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952302
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрел, туплю. Подскажите, если не сложно.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952350
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov,

есть кое-что, но годных штатных средств именно в форме объявленных хотелок - нет.

Можно воспользоваться средствами компонентов отображения: гриды EhLib, DevEx. У первого - механизм "драйверов", у второго - наследник TcxCustomDataSet. И тот и другой просты в понимании и реализации.

Можно также TVirtualStringTree, но с ним гемора куда больше, чем у двух названных выше.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952432
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше подробнее сформулировать задачу.

Потому что "скинуть датасет на диск" и "для экономии памяти" -
это разные задачи (и для разных целей, обычно).

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

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

Их можно сбрасывать на диск и загружать кусками. :)
Фибы (старых версий, на счёт новых ХЗ) так не умеют.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952447
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

да ну, хрень какая-то. Не знаю что, не знаю зачем.

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

Запрос в tpFibdataset выполняется для расчета сумм, то есть придется отфетчить все записи, и для отображения результата запроса в гриде в приложении. В стандартном варианте tpFibDataset загрузит все считанные с сервера данные в оперативную память, а память у нас ограниченная, особенно, если приложение 32 разрядное. То есть, если памяти не хватит - получаем Out of memory. Значит, мы либо сбрасываем считанные результаты в кэш на диск, с которого и показываем результаты запроса юзеру, в гриде, например, как это делает BDE, и мы даже и не паримся, сколько там сожрало приложение памяти оперативной и не получит ли оно Out of memory. Второе решение - выставить pfibdataset.cachemodeloptions.cachemodelkind в cmkLimitedBufferSize, и тогда pfibdataset будет подкачивать отображаемые данные по мере их надобности: надо в last выставить - скачает последние записи, покажет, а надо в First - скачает первые, покажет, а надо пробежать от first до last, то будет выкачивать новые по мере прохождения по датасету, а старые выгружать из памяти, а когда к ним обращаемся снова - скачивать их снова с сервера. Во втором решении, вроде, всё прекрасно, но после выполнения запроса мы остаемся во взаимодействии с сервером. Хотелось бы скачать все данные запроса целиком, пусть в кэш на диске, потом отцепиться от сервера, и разглядывай их сколько хочешь в своем гриде, сколько бы их там не было тыщ строк. Штатного средства в FibPlus для этого нет, похоже? Или не нахожу просто?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952457
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
а память у нас ограниченная, особенно, если приложение 32 разрядное

Оффтоп: а есть версия FIB+ для 64-бита?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952460
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,
Люди писали здесь, на форуме, что FibPlus не работает в 64 разрядных приложениях. То ли это означало, что и не откомпилится, то ли это означало, что будет работать некорректно, и надо допиливать - не знаю. У меня, к сожалению, Delphi XE. А так - да: возможности в использовании оперативки расширяются.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952463
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov,

пишут, что есть. 21801090
Я не пробовал.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952465
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Хмм, интересно, спасибо. Что-то я проглядел этот топик и приуныл. Правда, у меня всё равно XE, а на последний Delphi перейти доходы с бизнеса не позволяют, но это вот уже и правда оффтоп :)
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952471
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
Запрос в tpFibdataset выполняется для расчета сумм, то есть придется отфетчить все записи
если я всё правильно путаю, для расчёта сумм тебе не нужно мотаться по датасету взад-назад
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952474
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,
Для расчета сумм надо смотаться до конца один раз. Потом надо отобразить в гриде в приложении и, кстати, вернуться на первую запись. При cmkLimitedBufferSize, кстати, датасет призадумается, так как пойдет фетч уже первых записей, которые он давно выгрузил из памяти.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952475
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий
V.Borzov
Запрос в tpFibdataset выполняется для расчета сумм, то есть придется отфетчить все записи
если я всё правильно путаю, для расчёта сумм тебе не нужно мотаться по датасету взад-назад

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


А можно чуть подробнее про задачу, в которой надо сумму ста миллионов записей показывать?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952478
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
Для расчета сумм надо смотаться до конца один раз.
в этом случае буфер вообще можно отключить (UniDirectionale = True)
V.Borzov
Потом надо отобразить в гриде в приложении и, кстати, вернуться на первую запись
100500 записей показать?
КОМУ?!
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952479
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Да просто тупо "журнал продаж", например. Полей много, максимально подробно выведена каждая строка. Вот делаем запрос, видим результат. Вот увеличиваем диапазон дат - out of memory. Всё.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952480
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov,

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

Да просто тупо "журнал продаж", например. Полей много, максимально подробно выведена каждая строка. Вот делаем запрос, видим результат. Вот увеличиваем диапазон дат - out of memory. Всё.

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

Это отчёт или футер в гриде?

> Вот увеличиваем диапазон дат - out of memory. Всё.

На каком количестве записей?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952485
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
100500 записей показать?
КОМУ?!

Юзер знает, что есть журнал продаж, там сумма итого. Листать ему и не надо, может. Дает диапазон хрен знает какой и пытается вывести отчет. При больших диапазонах программа не справляется. Тут мы либо ограничиваем возможности этого отчета, запрещая юзеру выводить больше чем вот столько-то данных, чего хотелось бы избежать, либо исходим из того, что приложение может вывести всё, что захочет клиент, за счет оперативной памяти, за счет дискового пространства, или, в конце концов, за счет постоянных обращений к серверу. Но должно работать.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952486
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
Мимопроходящий
100500 записей показать?
КОМУ?!

Юзер знает, что есть журнал продаж, там сумма итого. Листать ему и не надо, может. Дает диапазон хрен знает какой и пытается вывести отчет. При больших диапазонах программа не справляется. Тут мы либо ограничиваем возможности этого отчета, запрещая юзеру выводить больше чем вот столько-то данных, чего хотелось бы избежать, либо исходим из того, что приложение может вывести всё, что захочет клиент, за счет оперативной памяти, за счет дискового пространства, или, в конце концов, за счет постоянных обращений к серверу. Но должно работать.


Понятно. Ставишь галку Unidirectional в True, в TpFIBDataSet, и всё.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952488
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
Юзер знает, что есть журнал продаж, там сумма итого. Листать ему и не надо, может.
отделяй мух от котлет - считай "итого" отдельным небуферизированным запросом/датасетом
...
Рейтинг: 0 / 0
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
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952549
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> Какой наш выбор?

В грид выводи первые N записей, а итоги
считай отдельным запросом, на сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952550
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам
В грид выводи первые N записей, а итоги
считай отдельным запросом, на сервере.

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

Он начал с экономии памяти с помощью выгрузки в файл. :)
Чтобы на каждого клиента по 100тыщ на каждый чих таскать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952553
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
V.Borzov
Никому не интересно это в виде превью в фастрепорте. В окне у людей куча кнопок с кучей всяких действий.

Это просто ты так сделал, и теперь думаешь, что так правильно.


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

В грид выводи первые N записей, а итоги
считай отдельным запросом, на сервере.

Когда юзер захочет что-то найти поиском по таблице, или просто пролистав, то упрется в fetch с базы. К тому же, если он дойдет-таки до конца, то получит тот же самый Out of memory, а о выводе данных в отдельном потоке и говорить не приходится.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952557
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
Какой наш выбор?

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

Сделаешь: https://www.fastreport.ru/public_download/html/ProgMan-ru/index.html?12.htm
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952560
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
V.Borzov
переходы в документы. Из превью в фастрепорте ничего этого не сделаешь же?

Сделаешь: https://www.fastreport.ru/public_download/html/ProgMan-ru/index.html?12.htm

Только я не уверен, что отчет размером 6Гб сформируется за разумное время.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952561
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> упрется в fetch с базы. К тому же, если он дойдет-таки до конца

"Первые N" - это Select First N fields.
По дефолту 100 или 1000, настраивается в
Options на все или для опр. форм/объектов.

> о выводе данных в отдельном потоке и говорить не приходится.

Если возникают вопросы/проблемы/сомнения -
лучше озвучивай их, а не свой (возможно
неудачный/неоптимальный) опыт/решение.

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

Пользовательские наборы данных в таких объемах - не формируются, хотя данных реально дохрена.
При отображении данные всегда как-то сгруппированы. Примерно, как в файловой системе Windows, только признаков группировки ..

Благодарю за урок, но сейчас у меня стоит вопрос, как то, что уже давно работает, перетащить на новую технологию с минимальными, насколько возможно. затратами. Потом, возможно, буду ломать всё и рисовать новые прогрессивные отчеты в фастрепорте, в treeview или прямо в экселе. Но я и так уже слишком много переломал, настолько, что для того, чтобы перейти с BDE Paradox на Firebird, мне нужно переписать всю программу с нуля. С таким же успехом я мог её переписать на C++, немного бы потерял с точки зрения потраченного времени. Сижу вот и думаю, а мог ли я, почти ничего не меняя, перейти сначала на firebird из-под BDE, а потом уже дальше пойти? Не знаю.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952565
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ> Сделаешь: https://www.fastreport.ru

Не, FR ему для сабжа нафиг не сдался.
Только хуже может стать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952566
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам
ъъъъъ> Сделаешь: https://www.fastreport.ru

Не, FR ему для сабжа нафиг не сдался.
Только хуже может стать.

Пожалуй, что да.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952568
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У ТС вылезли ограничения выбранной архитектуры.
Раз сейчас перелопачивать никак, придется ещё немного подождать, когда совсем невмоготу станет. Нормальный процесс.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952570
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
. Теперь выгружаю полученный результат в DBF-файл с помощью TDBF. Получился файл размером 6 гиг.

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

К примеру, у тебя в потоке делается то, что делается -
что всё это время делает (может делать) пользователь?
Открывает другую такую же форму с другим фильтром?

В старом BDE приложении сидит и тупо смотрит на приложение, которой в одном потоке и рисует и считает. Разве что только еще одно приложение открыть, рискуя, что BDE подвиснет. В новом приложении уже шаг вперед: расчет выводится в отдельном потоке, и в той форме. Юзер же может так же тупо смотреть, а может еще что-то открыть в приложении. При таком подходе лучше сразу уже всё с сервера забрать, разместить в форме, и пусть себе дальше работает с этой формой, если она ему так нужна. Если не нужна, повторяюсь, то есть другие отчеты, всякие там сводные, где он увидит просто сумму, без детализации. Но раз ему тут надо, то пусть тут сидит. Выводить первые N строк, а потом заставлять фетчить при попытке юзера поискать что-то - это тот же самый старый подход: и счет, и отображение - в одном потоке. И скорость - одно дело я этот 6-гигабайтный DBF испоьзую, где все поиски и вся беготня практически мгновенно (я писал выше - while not eof do next за 5 секунд), а совсем другое дело, когда я юзеру показал N строк быстренько, а когда он сказал: "а найди-ка мне позицию с текстом "АБС", и приложение замерло, а, не на подходе к последним строкам еще и умерло.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952574
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
V.Borzov
. Теперь выгружаю полученный результат в DBF-файл с помощью TDBF. Получился файл размером 6 гиг.

Разве dbf файлы таких размеров могут существовать?


Ну, изначально я и поинтересовался: 1) есть ли в FibPlus штатное средство для скидывания кэша на диск и работы с ним потом, не загружая это всё в оперативку, чтобы велосипед не изобретать. Ибо велосипед это 2) какие существуют удобные для этого датасеты. Например BDE-шные DBF и DB упрутся в 2 гига в лучшем случае, там всё. взял TDBF, он сохранил при tablelevel=5. Но у него других ограничений куча. Может, еще что-то есть для применения, чтобы избежать изобретения очередного велосипеда?
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952576
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ

Только я не уверен, что отчет размером 6Гб сформируется за разумное время.

Ну, в FibDataset этот набор данных занял 1.2 гига в памяти, а выкачивал в память целиком 3 минуты, а в на диске - 900 мб, куда он сбрасывал секунды 4, не больше. Это DBF развернул его в 6 гиг. С какой скоростью выкидывать это в DBF - это еще можно поработать будет, пока не очень быстро. Зато отображается это всё ой как быстро и ой как экономно с точки зрения оперативной памяти.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952581
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
ъъъъъ

Только я не уверен, что отчет размером 6Гб сформируется за разумное время.

Ну, в FibDataset этот набор данных занял 1.2 гига в памяти, а выкачивал в память целиком 3 минуты, а в на диске - 900 мб, куда он сбрасывал секунды 4, не больше. Это DBF развернул его в 6 гиг. С какой скоростью выкидывать это в DBF - это еще можно поработать будет, пока не очень быстро. Зато отображается это всё ой как быстро и ой как экономно с точки зрения оперативной памяти.

Ну, можно по зернышку клевать. Например, при формировании dbf не использовать загрузку в TpFIBDataSet, а использовать однонаправленный TpFIBQuery. Или, если используется готовый конвертер "датасет" -> dbf, попробовать включить у TpFIBDataSet флаг Unidirectional.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952588
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте документацию по Фаердаку: Арефьев предпринимал какие-то шаги для имитации работы BDE. Фаердак фаерберд поддерживает.
А вообще меняйте подход работы с данными: данные надо не искать, не фильтровать, а отбирать. С сервера должно приходить только то, что нужно сейчас, а не то, что может понадобиться вообще. Да, сначала это тяжело (вам повезло: BDE очень удачно скрывал разницу вплоть до средних объемов), но потом оцените.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952596
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ

Ну, можно по зернышку клевать. Например, при формировании dbf не использовать загрузку в TpFIBDataSet, а использовать однонаправленный TpFIBQuery. Или, если используется готовый конвертер "датасет" -> dbf, попробовать включить у TpFIBDataSet флаг Unidirectional.

Это да, разумеется. Грузить в DBF без лишних затрат оперативки. Остается открытым вопрос: может, в fibPlus штатные средства есть, или как-то довольно просто что-то там реализуется... Кажется, что вон оно рядом что-то там, но не могу найти. Еще не нравятся ограничения DBF на поля: нет BigInt, размер строки максимум 254 символа. Хотя, конечно, это всё обходится.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952597
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010, понял, спасибо.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952601
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert, к слову, не так давно научился полный фетч делать на данные. Раньше Out of memory давал. Сейчас набирает данных в память, а когда размер занимаемой приложением памяти выпрыгивает за 1.3 гига примерно, он всё набранное скидывает в файл и дальше спокойненько туда фетчит до упора, занимая не больше 80мб оперативки и время от времени спрашивая юзера, не одумался ли он, хочет ли он еще на 15 гиг увеличить размер файла-буфера. Потом бегаем по гриду довольно-таки быстро. Правда вот пытаться отсортировать, кликая по заголовку, не стоит. Вот именно об этом я и говорю.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952611
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov> В старом BDE приложении сидит и тупо смотрит на
V.Borzov> приложение, которой в одном потоке и рисует и считает

Значит, поток был нафиг не нужен, и можно было анимашку показать.

V.Borzov> Юзер ... может еще что-то открыть в приложении

А точно может? Проверь на всякий случай.

V.Borzov> При таком подходе лучше сразу уже всё с сервера забрать

Нет. Если пользователь ровно один - по всякому можно
извращаться, не беда, если же их много - фетчить всё на
клиента не годится.

V.Borzov> Выводить первые N строк, а потом заставлять
V.Borzov> фетчить при попытке юзера поискать что-то -
V.Borzov> это тот же самый старый подход... в одном потоке

Нет. Я уже советовал выкинуть старые заблуждения из головы
(или если не из головы, то хотя бы при обсуждении на форуме).

V.Borzov> а когда он сказал: "а найди-ка мне позицию с текстом "АБС", и
V.Borzov> приложение замерло, а, не на подходе к последним строкам еще и умерло.

Ты уже проверял? Сделай небольшую формочку и проверь.

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

А точно может? Проверь на всякий случай.

Может. Открываю 5 форм, в каждой свой запрос, спокойно работает. Firebird 3.0 SS распиливает по потокам раздачу.

Нет. Я уже советовал выкинуть старые заблуждения из головы
(или если не из головы, то хотя бы при обсуждении на форуме).

То есть, мне на форуме нельзя было задать озвученный в топике вопрос? Или о чем Вы, я не понял. Обсуждаем, потому что спрашиваете, зачем мне всё это надо. Я не спрашивал, как мне сменить подход, я спрашивал, есть ли в FibPlus штатное средство. Но за советы спасибо, конечно.

V.Borzov> а когда он сказал: "а найди-ка мне позицию с текстом "АБС", и
V.Borzov> приложение замерло, а, не на подходе к последним строкам еще и умерло.

Ты уже проверял? Сделай небольшую формочку и проверь.

А чего тут проверять. Ctrl+End - и привет, приложение будет висеть, пока не отфетчит всё до последней записи.

Кстати, эти аптеки - это одна сеть аптек с центральной БД
или это разные клиенты? Или как?

Есть сеть центральной базой с 80 аптечными пунктами. Её очень хочется уже на firebird всё перевести, хотя бы центральную базу, ибо Paradox скрипит кое-как, валится на простейших запросах, приходится постоянно изголяться и усложнять пути. Остальные клиенты имеют по 1-3-5-10-15 аптек, им вообще по барабану, firebird у меня или BDE, поэтому и дела с Firebird идут по остаточному принципу. Был клиент с 40 аптеками, но отвалился в прошлом месяце, падла. Наверное, из-за моих заблуждений.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952627
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov, для того, чтобы не запрашивать каждый раз сотни тысяч записей с удалённого сервера, можно реализовать локальную базу Firebird с периодической репликацией. Я для таких целей использую элементарный способ: в каждой таблице создаю поле MODIFYTIME и с помощью триггера обновляю его при каждом изменении записи (желательно, чтобы записи из таблицы не удалялись, т.к. для отслеживания удаляемых записей нужен другой механизм). Раз в минуту делаю простейший запрос к серверу SELECT * FROM TABLE WHERE MODIFYTIME > :LastReplicationServerTime - 10 sec. (на всякий случай даю 10 секунд, чтобы учесть незавершённые пишущие транзакции). Ничего сложного. Могут быть проблемы, если на сервере сбойнёт время, но это крайне редкая ситуация (может раз в 10 лет что-то такое и возникнет).

А по поводу попытки впихнуть в датасет сотни тысяч записей - так не делают. Во времена BDE прокатывало, но это не означает, что так делать правильно.
Лучше ограничивать количество выводимых записей, например SELECT FIRST 10000, плюс применять различные фильтры и перезапрашивать данные при изменении фильтров уже с локальной копии базы данных. Итоги вычислять отдельными запросами.

А про BDE вспоминаю как про кошмарный сон. 11 лет назад переходили с BDE на Firebird. Перед этим целое исследование было.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952678
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Раз в минуту делаю простейший запрос к серверу SELECT * FROM TABLE WHERE MODIFYTIME > :LastReplicationServerTime - 10 sec. (на всякий случай даю 10 секунд, чтобы учесть незавершённые пишущие транзакции). Ничего сложного. Могут быть проблемы, если на сервере сбойнёт время, но это крайне редкая ситуация (может раз в 10 лет что-то такое и возникнет).

Простой но ненадежный вариант.
Если случится быть транзакции длиннее 10 секунд - данные не отреплицируются.
Сначала они не видны из-за отсутствия коммита, а потом - из-за времени.
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952691
sg729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
как то, что уже давно работает, перетащить на новую технологию с минимальными, насколько возможно. затратами.

Так не получится (ИМХО). Лучше и быстрее сломать все и выстроить заново. Причем сломать прежде всего свой образ мышления. Уж поверьте мне на слово, как много лет работавшему с Paradox (начиная с DOS). Клиент-сервер - это другая технология.
Вам здесь уже посоветовали абсолютно правильный подход: два запроса - строго ограниченная по количеству записей выборка (т.е. только то, что юзеру реально нужно увидеть в гриде) и отдельно - запрос для вычисления итогов.
Еще можно посмотреть в сторону хранимых агрегатов - весьма эффективная технология : ссылка
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952712
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

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

Можно, конечно. Просто когда Вам отвечают,
что делайте First N, а Вы в ответ говорите, что
это "тот же самый старый подход ... заставлять
фетчить ... в одном потоке" - желание что-то
объяснять сразу пропадает.

> есть ли в FibPlus штатное средство.

Нет, в ФИБах (старых версий, про новые ХЗ)
такого точно не было. Возможно, в FireDAC
или UniDAC есть некий способ засосать все
данные датасета в кеш-файл и шариться по
нему в "оффлайн режиме" - ХЗ, надо проверять.

> А чего тут проверять. Ctrl+End - и привет, приложение
> будет висеть, пока не отфетчит всё до последней записи.

Для N (100) записей?

> Наверное, из-за моих заблуждений.

Вам не столько Delphi и датасеты нужно изучать,
сколько основы клиент-серверных технологий
(а-то и до трёхзвенки доберётесь). Потом конкретно
Firebird (или ту СУБД, которую будете использовать).
И только потом уже как датасеты налабать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
pFibDataset - скинуть буфер на диск для экономии памяти
    #39952825
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,
А я просил разве мне что-то объяснять? Где это написано? Спасибо, конечно, но мой вопрос был вполне конкретным: есть или нет, знаете или не знаете. Спасибо за участие, конечно.
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / pFibDataset - скинуть буфер на диск для экономии памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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