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

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

Сервер и время [D7, firebird 1.5]


Kabazoo ©   (2006-01-21 02:17:00) 

Народ , вопрос следующий ...

Есть база на firebird ...
В одной из таблиц есть поле типа TIME

В клиентском приложении при добавлении записи в таблицу в соответствуещее поле заносится времядобавления записи ...

Вопрос: Если ли какая нють функция , которая позволила бы узнать и записать в таблицу текущее время на самом сервере БД, а не на локальной машине ???


Sergey Masloff   (2006-01-21 15:53:00) [1]

Да я-то знаю. Просто хотел на это внимание обратить вопрошавшего ;-)


Anatoly Podgoretsky   (2006-01-21 14:41:00) [2]

Примечание - может использоваться любое опорное время, не обязательно UTC, просто последнее системно и позиционно независимо. Каждый клиент будет видеть свое локальное время, а на сервер опорно. В случае использования UTC серверу не придется беспокоиться ни о времени клиента, ни о его часовом поясе. Если же время должно показываться в независимом формате и одинаково у всех клиентов, то используется системное время на обеих сторонах. Часто время в этом случае показывают в другой форме hh:mm:ss (аббревиатура и + смещене), для одназначности.


Anatoly Podgoretsky   (2006-01-21 14:36:00) [3]

Sergey Masloff   (21.01.06 13:35) [11]
А ему и не надо знать, а то может что у двух рядом сидящих клиентов время может сильно отличаться. Время надо устанавливать на сервере и на клиенте (или на сервере) приводить к локальному. Тогда будет одназначность и точность.


Sergey Masloff   (2006-01-21 13:35:00) [4]

Anatoly Podgoretsky ©   (21.01.06 12:15) [9]
>Очень просто, не надо хранить в локальном времени, для этого >использовать UTC
Да это понятно. Только знает ли сервер что за время у клиента?


Vemer   (2006-01-21 12:24:00) [5]

To Sergey Masloff
автор пишет:
"текущее время на самом сервере БД , а не на локальной машине"

To Kabazoo
Имелось в виду открывать/редактировать во время вставки строки.
Потом можешь менять его как хочешь.
Только опять-же - если у тебя есть точное время выполнения операций по серверу - зачем его менять?


Anatoly Podgoretsky   (2006-01-21 12:15:00) [6]

Sergey Masloff   (21.01.06 11:30) [5]
Очень просто, не надо хранить в локальном времени, для этого использовать UTC


mr.il   (2006-01-21 11:56:00) [7]

Благодарю.


Kabazoo   (2006-01-21 11:37:00) [8]

Vemer ©

Это время нельзя будет отредактировать позже(при необходимости) , я правильно понимаю ???


Sergey Masloff   (2006-01-21 11:31:00) [9]

mr.il ©   (21.01.06 07:41) [2]
'NOW' устаревшая фича поддерживаемая для backward совместимости. Надо использовать CURRENT_XXX


Sergey Masloff   (2006-01-21 11:30:00) [10]

Vemer ©   (21.01.06 10:08) [4]
Как насчет случая когда сервер и клиент в разных часовых поясах?


Vemer   (2006-01-21 10:08:00) [11]

Зачем напрягать клиентскую часть, когда это можно делать автоматом на серваке.
Создай новое поле типа Тиме с опцией Default = Current_Time.
Сервер сам будет заносить туда время.
Если конечно ты не будешь пытаться редактировать его нa клиенте :).


mr.il   (2006-01-21 09:17:00) [12]

Тока вроде-бы в двойных кавычках, а то он попытается как строку вставить.


mr.il   (2006-01-21 07:41:00) [13]

в триггере BeforeInsert пишеш:
твое_поле.new = 'now';


Fay   (2006-01-21 04:04:00) [14]

2 Kabazoo   (21.01.06 2:17)
CURRENT_TIME, что ли?


Наверх

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