L l_hx Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #1 我在NT4.0组成的局域网上开发一个程序,数据库采用Paradox, 请问怎样同步工作站与服务器的时间,目的是使在工作站上 运行的程序获取服务器时间,而不是取工作站本地的时间.
Y yck Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #2 你用的是PARADOX数据库,他和DBASE一样,都是文件型的,一个表一个文件, 所以没有什么系统表可以取到系统时间,若你用的是ORACLE、SQL SERVER、 INFORMIX等大型数据库,里面有很多系统表,而且还有个DBMS(数据库管理系统) 在一直运行,那就可以了。 如ORACLE 中,select sysdate from dual就可以得到服务器的系统时间。 若你不能换数据库平台,就只能想别的办法了,如下面的方法可能行的通: 1、在服务器的数据库中创建一个系统时间表,专门记录系统时间用。 2、在服务器上开发一个小程序,每隔一定时间(如1分钟或1秒种等,随你的程序 的精度需要)设置一向系统时间表里的系统时间字段。 3、工作站上要取时间的话,从系统时间表里取。
你用的是PARADOX数据库,他和DBASE一样,都是文件型的,一个表一个文件, 所以没有什么系统表可以取到系统时间,若你用的是ORACLE、SQL SERVER、 INFORMIX等大型数据库,里面有很多系统表,而且还有个DBMS(数据库管理系统) 在一直运行,那就可以了。 如ORACLE 中,select sysdate from dual就可以得到服务器的系统时间。 若你不能换数据库平台,就只能想别的办法了,如下面的方法可能行的通: 1、在服务器的数据库中创建一个系统时间表,专门记录系统时间用。 2、在服务器上开发一个小程序,每隔一定时间(如1分钟或1秒种等,随你的程序 的精度需要)设置一向系统时间表里的系统时间字段。 3、工作站上要取时间的话,从系统时间表里取。
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #3 问过很多次了,用dos命令: NET TIME [//computer | /WORKGROUP:wgname] [/SET] [/YES]
L l_hx Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-05 #4 请教 cAkk : 能不能给段程序说明怎样使用 Net Time 获得服务器时间. 多谢
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-05 #5 如果你只是同步时间,那么没必要取得时间(看你题意是这样的), 你只要: winexec('net time //servername /set /yes',sw_hide); 即可
P popeye Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #6 delphi带有一个例子,可以取得internet上主机的时间,用的是TNMDateTime控件 在demos/fastnet/datetime/下
P popeye Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #7 是啊,从数据库里直接取得时间更方便,只用一个select语句 参见我提的问题:http://202.120.85.61/delphibbs/DispQ.asp?LID=242207
陈 陈君凯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #8 在服务器上的一个应用程序的某个窗体上加一Edit控件,让他显示当前服务器时间, 在工作站的应用程序的窗体上加一个Edit控件,让他动态的显示那个Edit控件 显示的时间
L l_hx Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #9 谢谢 yck 的问题解答 谢谢 陈君凯的指点,不过答案不合适 谢谢 popeye, 你提供的是 SQL Server的解决方法 谢谢 cAkk, 是你的方法给我启发 解决: //申请全局变量 SysDate : TDate; //定义一个函数 function ServerDate():TDate begin {如果日期有变化,则说明: 1.日期自然变化, 2.人为的非正常的改变 这时就需要与服务器进行时间同步,消除人为非正常的改变} if SysDate <> Date then begin WinExec('net time //servername /set /yes',sw_hide); SysDate := Date; end; Result := SysDate; end; 运行环境: 服务器 NT4.0 工作站 Windows 95/98 数据库 Paradox
谢谢 yck 的问题解答 谢谢 陈君凯的指点,不过答案不合适 谢谢 popeye, 你提供的是 SQL Server的解决方法 谢谢 cAkk, 是你的方法给我启发 解决: //申请全局变量 SysDate : TDate; //定义一个函数 function ServerDate():TDate begin {如果日期有变化,则说明: 1.日期自然变化, 2.人为的非正常的改变 这时就需要与服务器进行时间同步,消除人为非正常的改变} if SysDate <> Date then begin WinExec('net time //servername /set /yes',sw_hide); SysDate := Date; end; Result := SysDate; end; 运行环境: 服务器 NT4.0 工作站 Windows 95/98 数据库 Paradox