powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Auto refresh timer pFibDataSet
25 сообщений из 33, страница 1 из 2
Auto refresh timer pFibDataSet
    #39967645
LMag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер.

У меня следующий вопрос. Как мне сделать автоматическое обновление в pFibDataSet, по таймеру?

У меня есть таблица, мне нужно чтоб она через определенное время сама обновлялась.

Я знаю у pFibDataSet, ест два метода, Refresh и FullRefresh.

У меня сейчас следующее
Код: pascal
1.
2.
3.
4.
5.
6.
7.
  TRefrOrdersTimer(Sender: TObject) // событие onTimer

  FOrdDetails.DisableControls;
    
    FOrders.FullRefresh;

  FOrdDetails.EnableControls;


Но я заметил , что при большом объеме, когда я бегаю по записям, набор данных подвисает, видимо при обновлении по таймеру.

Не могли бы подсказать, как мне слелать обновление , чтоб при переходе по записям не происходили тормажение.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967652
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LMag
... Как мне сделать автоматическое обновление в pFibDataSet, по таймеру?
... есть таблица, мне нужно чтоб она через определенное время сама обновлялась.

...при большом объеме...набор данных подвисает...

...как мне сделать ...

Если большие объемы - отказаться от обновления по таймеру.
Аминь.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967657
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LMag
Но я заметил , что при большом объеме, когда я бегаю по записям, набор данных подвисает, видимо при обновлении по таймеру.

у вас этот код в таймере прописан?

В доке по фибам написано следующее
procedure FullRefresh;
Этот метод производит переоткрытие датасета. При этом отключаются методы, влияющие на
отображение: визуальные компоненты данных и прокрутка.

Т.е. производятся последовательно две процедуры для датасета: Close и Open. Поэтому, видимо, и подвисание.

Можно сделать ReopenLocate

из докиprocedure ReopenLocate(const LocateFieldNames:string);
Этот метод переоткрывает TpFIBDataSet с позиционированием на том же месте, где был
курсор перед закрытием. Параметр определяет, по каким полям будет сделан последующий
Locate. Если полей несколько, их нужно писать через ';'

Попробуйте сделать просто Refresh датасету, предварительно запомнив ID записи и перейдя к ней после обновления содержимого дататсета.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967877
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LMag
Как мне сделать автоматическое обновление в pFibDataSet, по таймеру?
Для начала классический вопрос: "Зачем?"
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967879
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LMag
Как мне сделать автоматическое обновление в pFibDataSet, по таймеру?


ты уверен, что пользователю понравится то, что без его разрешения/ведома будет обновляться и моргать сетка и "сбивать" его курсор в самый неподходящий момент?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967880
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты только начинаешь проект, то я бы не рекомендовал использовать FibPlus, т.к. он уже давно не развивается. Я уверен, там не будет поддержки новых фишек Firebird.

От себя лично я бы порекомендовал DevArt UniDAC.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967923
sg729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
От себя лично я бы порекомендовал DevArt UniDAC.

Поддержка Firebird в UniDAC только для Delphi? Для C# нет?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39967928
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Для начала классический вопрос: "Зачем?"

классический же ответ: "Надо!"

[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39968041
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док
ничего не будет, если вовремя вертать курсор взад :)
Угу, особенно если начать редактировать))
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39968261
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg729
Поддержка Firebird в UniDAC только для Delphi? Для C# нет?


https://www.devart.com/ru/dotconnect/
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39968276
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Угу, особенно если начать редактировать))

ты про букмарки?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39968298
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg729Поддержка Firebird в UniDAC только для Delphi? Для C# нет?
UniDAC это для Delphi и C++. Для C#, т.е. .Net, всегда есть отдельные драйверы.
У Firebird это штатный .Net provider
https://firebirdsql.org/en/net-provider/
X11 Я уверен, там [в FIBPlus] не будет поддержки новых фишек Firebird.
FIBPlus уже давно модифицируют другие люди. Однако, правовой статус этого дела неясен.
X11 https://www.devart.com/ru/dotconnect/
тут надо сравнивать его функционал со штатным firebird .net provider, надо-ли идентичную поддержку остальных серверов (и насколько она идентична), и т.д.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969234
sg729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
sg729
Поддержка Firebird в UniDAC только для Delphi? Для C# нет?

https://www.devart.com/ru/dotconnect/

"Firebird: versions 2.x, 1.x; "
https://www.devart.com/dotconnect/universal/compatibility.html

Поддержка Firebird 3.X планируется?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969245
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
FIBPlus уже давно модифицируют другие люди.


Проблема в том, что новые фичи Firebird`а библиотека не поддерживает.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969270
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уберите таймер и сделайте обновление по таймауту во время неактивности пользователя.
если я конечно правильно понимаю задачу :)
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969527
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
kdv
FIBPlus уже давно модифицируют другие люди.


Проблема в том, что новые фичи Firebird`а библиотека не поддерживает.

Назовешь эти "фичи"?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969531
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11новые фичи Firebird`а библиотека не поддерживает.
а кто поддерживает? назови! :-)
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969594
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех нововведений с Firebird 2 до Firebird 4 не назову.
Ну вот хотя бы boolean-поля.
Насколько мне известно, то UniDAC поддерживает. А FireDAC что, не поддерживает boolean-поля?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39969680
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11, ну понятно, "бла-бла".

Булевские поля в фиб+ использовать можно.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970087
KonstFB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А оно надо - "по таймеру" ?!
Кому, для чего?!

Чем не вариант - рассчитать процедурой на стороне сервера количество записей, и если оно изменилось от вашего текущего делать рефрешь!

А подряд рефрешить ... да если еще и несколько пользователей - такое себе!
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970160
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstFB
Чем не вариант - рассчитать процедурой на стороне сервера количество записей, и если оно изменилось от вашего текущего делать рефрешь!
Я долго это читал и терпел. Какой таймер? Какое количество записей? Обычный POST_EVENT в AFTER триггере. Всё!
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970173
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
...Обычный POST_EVENT в AFTER триггере. Всё!

А потом - все равно авторефрешь? :)
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970175
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
KonstFB
Чем не вариант - рассчитать процедурой на стороне сервера количество записей, и если оно изменилось от вашего текущего делать рефрешь!
Я долго это читал и терпел. Какой таймер? Какое количество записей? Обычный POST_EVENT в AFTER триггере. Всё!


У постэвент есть одна проблема: если изменения вносишь ты (в зависимые таблицы), то надо либо на post_event() рассчитывать, либо принудительно Refresh() вызывать. А если EventAlerter не смог подключиться к серверу, то обновлений ты не увидишь.
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970177
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
...
У постэвент есть одна проблема: если изменения вносишь ты (в зависимые таблицы), то надо либо на post_event() рассчитывать, либо принудительно Refresh() вызывать...

?
...
Рейтинг: 0 / 0
Auto refresh timer pFibDataSet
    #39970178
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
А если EventAlerter не смог подключиться к серверу, то обновлений ты не увидишь.
А еще я их не увижу, если пропала связь с сервером. Но никто же не предлагает отказаться от удаленного сервера и крутить все на локальной машине?
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Auto refresh timer pFibDataSet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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