Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Как выдать сообщение   Найти похожие ветки 

 
boss_zbk   (2006-09-11 03:36) [0]

В базе есть поле "Время регистрации". Необходимо чтобы программа отслеживала время регистрации и если с момента внесения записи прошло более часа, чтобы автоматически выдавала сообщение и просила внести изменение в другое поле.


 
Sergey13 ©   (2006-09-11 08:39) [1]

Периодически сканируй таблицу (лучше запросом) и выдавай свое сообщение.


 
boss_zbk   (2006-09-11 09:05) [2]

а по подробнее нельзя? алгоритм то понятен вот как реализовать (еще пока чайник)


 
Sergey13 ©   (2006-09-11 09:22) [3]

> [2] boss_zbk   (11.09.06 09:05)

А ы чем проблема то? Через определенный интервал (TTimer) запускаешь процедуру. В ней запрос вида (это "болванка", а не рабочий код)

Select * from table_name where sysdate-f_date>1/24 and priznak=0

где f_date - это твое поле, а priznak - поле для "отсечения" уже обработанных записей. По сформированному набору выдаешь свое сообщение или что там тебе надо.


 
ЮЮ ©   (2006-09-11 09:24) [4]


> алгоритм то понятен: В базе есть поле "Время регистрации".
вот как реализовать


Да уж. Алгоритм - понятней некуда :)
Попытайся понять так, чтобы и остальные поняли


 
Shaman_ ©   (2006-09-11 13:57) [5]

Если поле Время регистрации не изменяется другими пользователями, то на его базе нужно только инициализировать время выдачи сообщения пользователю и локально генерировать необходимое событие, при достижении этого времени, а не посылать запросы на базу, через интервалы времени. Запросы в базу через таймер это не самый хороший стиль программирования


 
Sergey13 ©   (2006-09-11 14:09) [6]

> [5] Shaman_ ©   (11.09.06 13:57)

1. На базе чего, что и где ты собираешься инициализировать в дибейсе?
2. Если задача - мониторинг таблицы, каким высоким штилем ты собираешься это писАть?


 
Shaman_ ©   (2006-09-11 14:15) [7]

>1. На базе чего, что и где ты собираешься инициализировать в дибейсе?
>2. Если задача - мониторинг таблицы, каким высоким штилем ты собираешься это писАть?

Автор пишет:
>В базе есть поле "Время регистрации". Необходимо чтобы программа отслеживала время регистрации

Задачи отслеживания новых записей я не вижу. Автор ставит задачу отслеживания времени регистрации, тоесть в момент выборки записей, на основе поля "Дата регистрации" необходимо инициализировать локальный таймер, который сработает, как только время из поля "Время регистрации" будет меньше на 1 час текущего времени

Что конкретно в этой логике является "Высоким штилем"?


 
Sergey13 ©   (2006-09-11 14:21) [8]

> [7] Shaman_ ©   (11.09.06 14:15)

У автора нигде нет ничего о том, что:
1. программа работает всегда.
2. отслеживаемая запись всего одна
3. что она вносится самой отслеживающей программой


 
Shaman_ ©   (2006-09-11 14:53) [9]

>1. программа работает всегда.
Причем здесь работает она всегда или не всегда. Необходимо во время работы программы поставить некие записи на контроль. Как их ставить на контроль если программа не будет запущена? СУБД сама что-ли должна всю логику реализовывать? :)))

>2. отслеживаемая запись всего одна
А что в моей логике мешает вести контроль за неограниченным количеством записей. Или по вашему на базе одного экземпляра TTimer класса это так сложно реализовать? Раз уж эта такая сложная задача для некоторых, то можно создать и несколько экземпляров TTimer класса, с соответствующим неоправданным расходом ресурсов

>3. что она вносится самой отслеживающей программой
Разве автор указал что программа должна отслеживать появление новых записей? Я пока такой задачи в теме не вижу. Если такая задача есть, то это уже отдельный вопрос, в котором через интервалы времени опрашивать базу тоже далеко не самый красивый способ реализации


 
Sergey13 ©   (2006-09-11 15:08) [10]

> [9] Shaman_ ©   (11.09.06 14:53)

1. То, что записи, попадающие под условие, могли быть внесены и вчера и на прошлой неделе. И не факт, что оператор сразу может ввести нужные данные, следовательно нужно ему об этом еще напоминать.

2. И чем это лучше, чем опросить актуальное состояние еще раз?

3. Не новых записей, а нужных. Запись могла стать таковой после запуска программы.


 
Shaman_ ©   (2006-09-11 15:19) [11]

>Sergey13 ©   (11.09.06 15:08) [10]

>1. Клиент или в момент подключения или по запросу пользователя делает выборку всех необходимых записей и ставит их на контроль. Что мешает получить записи внесенные и вчера и на прошлой неделе?

>2. А если к базе подключено 100 клиентов, а если подключение идет по слабому каналу- допустим интернет...? Клиент должен запрашивать данные только при определенном событии- запрос пользователя, получение обратного вызова от сервера и.т.д.

>3. Тоесть поле "Время регистрации" подразумевает изменение? Если так, то обсуждение нужно поворачивать в сторону обратных вызовов (если архитектура позволяет)


 
Sergey13 ©   (2006-09-11 15:30) [12]

> [11] Shaman_ ©   (11.09.06 15:19)
> >3. Тоесть поле "Время регистрации" подразумевает изменение?

> [0] boss_zbk   (11.09.06 03:36)
> Необходимо чтобы программа отслеживала время регистрации и если с момента внесения записи прошло более часа

> >2. А если ...
Никто и не говорит, что надо сразу и непременно их тащить на клиента. Достаточно запросить их наличие. Кроме того, если с базой дибейс одновременно работает 100 человек через инет - то можно просто застрелиться и ничего не запрашивать. 8-)


 
Shaman_ ©   (2006-09-11 15:46) [13]

> >2. А если ...
Никто и не говорит, что надо сразу и непременно их тащить на клиента. Достаточно запросить их наличие.

А никто и не предпологал что возможен вариант с затаскиванием всех данных на клиента. Речь только о запросе на наличие таких данных и уже факт таких (хоть и вероятно не тяжелых) запросов через таймер, является нарушением правил написания ПО

>Кроме того, если с базой дибейс одновременно работает 100 человек через инет - то можно просто застрелиться и ничего не запрашивать. 8-)
Просто нужно придерживаться хорошего тона программирования, тогда и на 300 коннектов будет нормальная стабильная работа, при условии достаточной мощности сервера. Больше 300 пока не доводилось...


> [11] Shaman_ ©   (11.09.06 15:19)
> >3. Тоесть поле "Время регистрации" подразумевает изменение?

> [0] boss_zbk   (11.09.06 03:36)
> Необходимо чтобы программа отслеживала время регистрации и если с момента внесения записи прошло более часа

Я это вижу так, что поле "Время регистрации" задается в момент создания записи и не может изменяться в дальнейшем. Возможно, я не прав, но поскольку автора не видно, обсуждать дальше не имеет смысла


 
Sergey13 ©   (2006-09-11 15:54) [14]

> [13] Shaman_ ©   (11.09.06 15:46)
> и уже факт таких (хоть и вероятно не тяжелых)
> запросов через таймер, является нарушением правил написания ПО
Спасибо за информацию. Написать письмо что ли в, например, Quest Software, а то нарушають блин все правила - по таймеру Оракл опрашивают.


 
Shaman_ ©   (2006-09-11 16:05) [15]

>Sergey13 ©   (11.09.06 15:54) [14]
Если архитектура не позволяет использовать обратные вызовы, необходим контроль на появление новых записей и при условии еще десятка факторов, которые лень сейчас расписывать, то никуда не денешься и будешь опрашивать базу через таймер. В сабже я пока такой безысходности не увидел- Если автор описал бы более подробно методику работы с базой, то можно было бы однозначно сказать какой вариант лучше. Пока остается строить свои рекомендации на догадках


 
Sergey13 ©   (2006-09-11 16:16) [16]

> [15] Shaman_ ©   (11.09.06 16:05)

Да при чем тут архитектура? Вопрос не в частоте запросов, а в их оптимальности и целесообразности. БД не священная корова, ее можно доить. А не выдумывать некие "правила написания ПО".


 
Shaman_ ©   (2006-09-11 16:35) [17]

Sergey13 ©
В одних случаях такой подход приемлем, в других не желателен а в некоторых вообще практически не допустим.
Чтобы четко определиться с уровнем ВРЕДА от реализации таймерных запросов, нужно более четко представлять специфику базы. Считаю безсмысленным продолжать этот спор, он перешел в абстрактное обсуждение



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.065 c
15-1160636327
*Стажер*
2006-10-12 10:58
2006.11.05
Что использовать?


15-1160944112
Petr V.Abramov
2006-10-16 00:28
2006.11.05
Съедобны ли сведезамороженные грибы?


3-1157457438
parovoZZ
2006-09-05 15:57
2006.11.05
Создание папки в древесной структуре


15-1161330910
Руслан
2006-10-20 11:55
2006.11.05
Форма в HTML


15-1161001717
Rwer
2006-10-16 16:28
2006.11.05
Самое эффективное решение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский