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

Вниз

Синхронизация с сервером.   Найти похожие ветки 

 
Ш-К   (2003-05-11 06:31) [0]

Как синхронизировать время на клиентских машинах по серверу на котором IB. 2-звенка.


 
Alexandr   (2003-05-11 08:59) [1]

получить время с сервера Interbase
select cast("now" as Date) from RDB$dataBase
здесь возможны вариации в зависимости от диалекта БД
А уж как это время прописать себе на компьютер - это тебе в другую конфу.
Кстати, в FIBPlus эта операция делается автоматически


 
Ш-К   (2003-05-11 19:07) [2]

Как получить время я понимаю. Например, делал так:

CREATE PROCEDURE GET_NOW
RETURNS (
RESULT DATE)
AS
begin
RESULT = "NOW";
end


Другое дело, что возможны грабли, когда запрос не выполнился. Транзакция "зависла" или сервер упал... не знаю. Т.е. мне нужна функция, которая возвращает время с сервера, если запрос выполнился, и 0(1899...), если была ошибка.
Вот как я делаю:

function TDataMod.GetNowFromServer: TDateTime;
var SystemTime: TSystemTime;
begin
result:= 0;
GET_NOW_Transaction.StartTransaction;
try
GET_NOW_SP.ExecProc;
finally
GET_NOW_Transaction.Commit;
result:= GET_NOW_SP.FieldByName("RESULT").AsDateTime;
DateTimeToSystemTime(result, SystemTime);
SetSystemTime(SystemTime);
end;
end;


Оно то работает. Только вот будет ли работать ВСЕГДА?


 
Desdechado   (2003-05-11 19:13) [3]

1-й вопрос звучал иначе...
поставь у клиентов time-сервер на IB-сервер или сделай в планировщике net time
вот и вся синхронизация


 
Ш-К   (2003-05-11 22:14) [4]

А что такое "time-сервер на IB-сервер"?
И где взять планировщик net time? Это что, программы отдельные или настройки чего-то?
Можно подробнее. Поиск ничего не даёт - слова слишком ходовые.

PS/ Клиенты-98 сервер-2000.


 
Sergey13   (2003-05-12 08:35) [5]

2Ш-К (11.05.03 22:14)
В autoexec.bat на клиенте напиши строчку
net time \\servname /set
вроде так (точно не помню). servname - имя сервера


 
ЮЮ   (2003-05-12 09:17) [6]

>Другое дело, что возможны грабли, когда запрос не выполнился. Транзакция "зависла" или сервер упал...

Может тогда написать чуть иначе:

function TDataMod.GetNowFromServer: TDateTime;
var SystemTime: TSystemTime;
begin
try
GET_NOW_SP.ExecProc;
result:= GET_NOW_SP.FieldByName("RESULT").AsDateTime;
DateTimeToSystemTime(result, SystemTime);
SetSystemTime(SystemTime);
except
result:= 0;
end;
end;


 
Johnmen   (2003-05-12 09:46) [7]

Одного не могу понять, причем здесь транзакции ?


 
Cranium   (2003-05-12 12:09) [8]

Если тебе нужно точное серверное время, так подставляй его в тригере, тогда получишь точное время записи.....



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

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

Наверх





Память: 0.46 MB
Время: 0.009 c
1-94838
I.Ru.Ru
2003-05-19 19:46
2003.05.29
Как поменять цвет заголовка компаненты TabSheet?


14-95103
Дмитрий К.К.
2003-05-12 05:30
2003.05.29
Именинники 12 мая


1-94821
Sodom
2003-05-19 13:12
2003.05.29
Callback function


14-95081
Дмитрий К.К.
2003-05-10 13:39
2003.05.29
Именинники 10 мая


1-94823
nevalex
2003-05-19 14:49
2003.05.29
Как написать компанент что-то вроде TMediaplyer?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский