|
|
|
| Доброе утро
Имеется таблица в которой в одном из полей вводится момент создания записи при помощи Ф-ии NOW( ). Соответственно мы видим момент создания записи по времени установленному в системе.
Скажите пожалуйста а возможно ли получить в поле таблицы момент создания записи в реалном времени.
Заранее спасибо | |
|
| |
|
|
|
| Сначала нужно определиться что такое "реальное" время....
Предположим у данной базы два пользователя, один во Владивостоке другой в Килининграде.
У кого реальное время?
Синхронизировать время на компьютере со временем на другом компьютере можно командой NET TIME | |
|
| |
|
|
|
| Что такое реальное время?
1. синхронизацию времени проводить на всех машинах и запрет на изменение пользователями
2. перевести таблицы на SQL или Oracle и т.д. | |
|
| |
|
|
|
| Вопрос в следущем
Таблица находится на серверном компьютере. В таблице есть поле в котором фиксируется момент создания записи - зн.по умлч.=NOW( ). В таблицу добавляются записи с сетевых компьютеров. Допустим что на главном компьютере изменят дату, время системы, тогда все добавленные после этого записи будут ложными (т.е. не соответствуют одному установленному времени).
Как можно избежать подобного | |
|
| |
|
|
|
| синхронизируйте время на всех компах с сервером командой
Net time \\192.168.100.1 | |
|
| |
|
|
|
| А как это делается и что это даст | |
|
| |
|
|
|
|
shell ("net time \\192.168.100.1 /SET /y")
|
это даст на машине где выполнен этот код такое же время как на \\192.168.100.1 | |
|
| |
|
|
|
| >это даст на машине где выполнен этот код такое же время как
>на \192.168.100.1
Почему то не дает
Сделал так
Public Sub SetNETTime()
Shell ("net time \\192.168.100.1 /SET /y")
Debug.Print Now
End Sub
|
Запускается программа c:\windows\sistem32\net.exe
в отладчике печатается текущее время компьютера
через 10 сек. закрывается c:\windows\sistem32\net.exe | |
|
| |
|
|
|
| 192.168.100.1 - а такой компьютер в сети есть? а к нему доступ есть?
а если просто в командной строке набрать ? что пишет? | |
|
| |
|
|
|
| >192.168.100.1 - а такой компьютер в сети есть?
192.168.100.1 - это IP Adress компа на котором выполнен этот код ???
Shell ("net time \\192.168.100.1 /SET /y")
Debug.Print Now
|
Если не трудно можно более подробно плиз | |
|
| |
|
|
|
| Нужно указывать адрес компа с которого нужно взять время
предварительно лучше потестировать
нажать кнопку "Пуск"
меню "выполнить" (ил запустить не помню"
там набираете CMD
в открывшемся черном окне пишите
net time \\192.168.100.235 /SET
нажимаете Enter
Смотрите что получилось | |
|
| |
|
|
|
| На компе с IP Adress 192.168.0.2 установлено время 26.08.2008 13:30 (сетьевой комп)
На компе с IP Adress 192.168.0.3 установлено время 27.08.2008 13:30
(главный комп)
с компа (IP Adress 192.168.0.2) выполняю код
Public Sub SetNETTime()
Shell ("net time \\192.168.0.3 /SET /y")
Debug.Print Now
End Sub
|
В отладчике получаю 26.08.2008 13:30 а нужно 27.08.2008 13:30 (т.е. время главного компа)
Что-то не то
зы Сори не заметил время меняется на то которое установлено на главном компе просто надо Debug.Print Now выполнять с небольшой задержкой.
Public Sub SetNetTime()
Dim sglStart
Shell ("net time \\192.168.0.3 /SET /y")
sglStart = Timer
Do While (Timer - sglStart) < 2
DoEvents
Loop
Debug.Print Now
End Sub
|
Теперь надо помозговать как это приспособить для свой задачи
Спасибо OSMOR | |
|
| |