注册 登录
编程论坛 VFP论坛

关于局域网时间问题

sqyanfu 发布于 2018-09-23 18:26, 1726 次点击
各位版主、大侠中秋快乐!

    软件在局域网中运行时,为防止个别用户修改本地计算机日期、时间而导致数据采集有误,我想通过两种方式来处理:

一是程序运行时记录时间标签,是局域网中特定一台数据库服务器的时间;

二是直接把本地计算机的时间参照数据库服务器时间进行校正(担心是否会受到本地用户权限限制,校对失败)。

到底该如何操作,请版主、大侠们赐教,并举例!谢谢

[此贴子已经被作者于2018-9-23 18:29编辑过]

4 回复
#2
吹水佬2018-09-23 20:13
如果作为数据用,一般不取本地的日期时间。
#3
sqyanfu2018-09-25 20:15
谢谢吹班主。
#4
whinda2018-11-22 19:00
如果可以联网,建议用Winsock连中科院授时中心或其它授时中心,取标准时间。
#5
liuxingang282018-11-24 10:32
第一个问题:本地客户端与服务器时间同步
假设服务器的 IP 是 192.168.0.1,在 VFP 下运行“RUN Net Time \\192.168.0.1 /Set /Yes”即可将本地终端的时间与服务器同步。
第二个问题:取服务器的日期时间
假设服务器上安装了SQL Server,可编写一个取服务器日期的函数
FUNCTION GetDate()
    LOCAL nSelect,dDate
    nSelect = SELECT()
    IF GetHandle()<0 OR SQLEXEC(gnHandle,'SELECT getdate()','curRet')<0
        dDate = DATE()              && 取服务器时间失败时,取本机时间
    ELSE
        dDate = TTOD(curRet.exp)    && 由日期时间型转换为日期型
        USE IN curRet
    ENDIF
    SELECT (nSelect)
    RETURN dDate
ENDFUNC
注:GetHandle()为获取服务器连接句柄的自定义函数,代码省略

[此贴子已经被作者于2018-11-24 10:34编辑过]

1