|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|
Builder 6 Таймер на форме, данные в базе: непонятная ситуация11.07.2018, 09:25. Показов 1768. Ответов 11
Метки нет (Все метки)
Привет всем)
Чтобы помочь мне скорее всего не нужно ни знание программирования, ни знание СУБД, а нужна смекалка и логика. Исходные данные: 1)---есть таймер на форме, 2)---по таймеру выполняется функция обновления некоторых данных на форме(данные тянутся из таблицы БД), 3)---ничего не предвещает беды и прекрасно работает. Кликните здесь для просмотра всего текста
То есть таймер у нас обновляется раз минуту, например, и все хорошо.
Далее пользователю захотелось вдруг настраивать время обновления из БД, и я сделала поле в таблице откуда функция тянет значение и присваивает таймеру. Все работало хорошо и пользователю все нравилось, поэтому он решил все поменять
Суть такова: данные, которые должны обновляться на форме тянутся из таблицы,в таблице этой есть дата/время обновления записи. Пользователю надо чтобы моя форма обновлялась сразу после того как обновились данные в таблице в поле с датой/временем обновления. Считаю это невозможным поскольку вижу единственным решением тут - ежесекундный запрос к таблице для проверки а-ля "не обновилось ли что там", а это не подходит, поскольку при таком ежесекундном обновлении пользователь просто не успевает работать с формой(она каждую секунду подвисает). что делать?
0
|
|
| 11.07.2018, 09:25 | |
|
Ответы с готовыми решениями:
11
Как обновить данные на форме у клиентов, сразу же когда обновились данные в базе Непонятная ситуация Непонятная ситуация...? |
|
|
||
| 11.07.2018, 09:44 | ||
|
0
|
||
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
||
| 16.07.2018, 12:15 [ТС] | ||
|
TrollHammer, в общем есть идея создать отдельный поток под эти нужды и, говорят, сие есть верное решение и явно лучше всех свистелок которые в голову лезут.
Читая про thread, понимаю что это первое, что должно было прийти мне в голову если я хороший программист.. Добавлено через 1 минуту Но видимо это (
0
|
||
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|
| 16.07.2018, 15:21 [ТС] | |
|
volvo, они пишутся в базу со стороннего сервиса навигации средствами этого же сервиса...
Добавлено через 2 часа 10 минут volvo, если б вы натолкнули на мысли - была бы рада, буду сейчас пробовать написать с потоком. Просто я по таймеру обновляла данные из базы, теперь они просят чтобы ориентировалась на время в таблицах, но чтобы постоянно проверять базу не будем же таймер использовать, они от этого отойти хотят. т.к. он каждую секунду обновляет. Это не годится. тем более тут в приложении вообще нет никаких потоков внутри, выходит только при запуске с процессом рождается один поток- в нем все и запрашиваем. Бог с ним, пусть для всего приложения будет один поток, но конкретно в этой форме нужно еще организовать, как я думаю. Просто чтобы как-то правильно и красиво это сделать. Чтоб без анти-паттернов всяких ![]() Добавлено через 4 минуты Приложение еще до меня писали, если что...
0
|
|
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|
| 16.07.2018, 16:09 [ТС] | |
|
volvo, СУБД Oracle
0
|
|
|
Супер-модератор
|
|
| 16.07.2018, 16:26 | |
Сообщение было отмечено Electroflower как решение
Решение
Оракла под рукой сейчас нет, но теоретически - не вижу причин не работать по схеме:
1) пишется триггер на изменение нужного поля, в нем вызывается DBMS_ALERT.Signal 2) в клиентском приложении на Дельфи/Билдере для отлова этого алерта используем TOraAlerter из ODAC (опять же, я не знаю, чем пользуетесь вы, ибо никакой информации не было предоставлено, поэтому я предлагаю свой вариант), и в момент, когда алерт пойман - просто делаем те обновления, которые нужны. Таймер не нужен от слова "совсем".
2
|
|
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
||||||
| 17.07.2018, 12:29 [ТС] | ||||||
|
volvo, ODAC есть, вижу TOraAlerter...
Звучит очень хорошо, спасибо вам :3 буду пробовать.. Добавлено через 13 минут volvo, еще хотела спросить в этой таблице обновляет данные некий SCHEDULER который нам недоступен, можем ли мы проверить таблицу на наличие апдейта ? Добавлено через 10 минут volvo, последний глупый вопрос пока отпадает, спасибо) Добавлено через 19 часов 17 минут volvo, В общем кинула на форму TOraAlerter, запускаю все но он не ловит из базы сигнал, возможно потому что стоит в положении Active->false. При установке true в ObjectInspector-е выдает ошибку ОРА 12154:TNS:Невозможно разрешить заданный идентификатор соединения. Есть TOraSession он стоит Connected->false но в запуске коннектится, а вот TOraAlerter даже если руками ставить в true выпадает в ошибку. Добавлено через 1 минуту сигнал так посылаю:
0
|
||||||
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|||||||||||
| 20.07.2018, 15:26 [ТС] | |||||||||||
|
UP!
еще актуально из базы пишу :
0
|
|||||||||||
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|
| 23.07.2018, 11:34 [ТС] | |
|
Ребят, проблема остается, кто-нибудь может помочь?
Почитала описание dbms_alert. Понимаю, что если реализовывать механизмы внутри БД, то одна структура ждет сообщения(dbms_alert.waitone), а другая подает сообщение (dbms_alert.signal). Если реализовывать как у меня в приложении на Builder 6- то моя база только подает сигнал(dbms_alert.signal), в то время как принимает сигнал уже TOraAlerter(dbms_alert.waitone).
0
|
|
|
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
|
|
| 25.07.2018, 15:01 [ТС] | |
|
Проблему решила, если что - буду спрашивать еще!
Отдельное спасибо volvo!
0
|
|
| 25.07.2018, 15:01 | |
|
Помогаю со студенческими работами здесь
12
Непонятная ситуация Непонятная ситуация
Непонятная ситуация с DNS
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|