Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Посоветуйте плизз варианты решений [D6, MSSQL]


JibSkeart ©   (2003-01-29 14:42:00) 

Задача такая
Есть табличка "заказов "
Есть табличка "предварительных заказов"
Как только до какого либо предварителбного заказа осталось 60 мин
или меньше мы его автоматически перекидываем
в табличку "заказов"

я сделал так
тоесть на таймере вызывается процедура которая смотрит
подошло время какой либо предварительный заказ перекинуть в табличку "заказов" или нет

и так каждые десять секунд ...

есть ли другая альтернатива ?


Max Zyuzin   (2003-01-29 18:08:00) [1]

Можно сделать так:
Делаешь запрос на выборку из предварительных заказов, сортируешь по времени, смотришь сколько времени до 1-го заказа, ставишь таймер на это время + 1 секнду (или как понадобится), ну и по таймеру делешь аналогичный запрос... и снова таймер на время след. заказа, это избавит сервер от слишком частых запросов... ИМХО


Денис Курьин   (2003-01-29 17:50:00) [2]

В таблице "Заказов" в поле время выполнения введи дополнительные символы, ну типа #DD.MM.YY_HH.MM- время , к которому необходимо выполнить заказ; запрос должен выбирать те записи, которые отмечены # и попадающие в интервал 1-го часа от текущего времени; при выполнении заказа, меняй поле на текущее время, без "#". Так при следующем запросе данные без решетки туда не попадут, а ты сможешь проконтролировать, сколько заказов не выполнено:
SELECT Name_zakaz, Time_zakaz
FROM Tabl
WHERE Time_zakaz like "#"


Давай, дерзай.


MsGuns   (2003-01-29 16:54:00) [3]

А почему нельзя в одной таблице при добавлении заказа записывать
- время получения заказа (NOW)
- время готовности заказа
- время выполнения заказа

Дальше просто. Повесь прогу, которая с интервалом 5 мин. будет давать запрос, в котором будут выбираться заказы, которые:
1. Имеют пусто в "Время выполнения"
2. <Время готовности>-<Время актуальное><:<Заданная величина>
После того, как заказ "уехал", тетенька кликает на евонной строке и прога пишет в эту запись <Время выполнения> := NOW;

Или я че-то не допонял ?


sniknik   (2003-01-29 16:44:00) [4]

Зачем нужно "перегонять" из таблици в таблицу?, напиши "вьюшку" с ограничением ко времени (60 мин от текущего), и выдавай ее по каждому запросу оператора.


NickBat   (2003-01-29 16:43:00) [5]

Может просто заказы сортировать по выполнено/невыполнено и по времени заказа. Тогда выполняется ближайщий по времени заказ (10 заказов). Все равно ведь пиццы будет печь не программ, а человек. :))


JibSkeart   (2003-01-29 16:32:00) [6]

ну представь что ты заказал пиццу на два часа ночи, утром ,
понятно, что на тот момент с ним никто не будет работать
то есть выполнен заказ или нет в этом смысле

и в час ночи естественно он появется в обшей таблице с заказами
и там уже операторы пригоняют тебе симпатичную девушку с пицей в ... руках :)


а так посути обе эти таблички идентичны ...

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


KDS   (2003-01-29 15:01:00) [7]

Для 60мин 10сек уж слишком точная проверка. Можно и через 1мин прверять. Хотя... суть задачи ясна , но сам процесс не ясен. Чем предварительный заказ от заказа отличается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо