服务器时间(100分)

  • 主题发起人 主题发起人 l_hx
  • 开始时间 开始时间
L

l_hx

Unregistered / Unconfirmed
GUEST, unregistred user!
我在NT4.0组成的局域网上开发一个程序,数据库采用Paradox,
请问怎样同步工作站与服务器的时间,目的是使在工作站上
运行的程序获取服务器时间,而不是取工作站本地的时间.
 
你用的是PARADOX数据库,他和DBASE一样,都是文件型的,一个表一个文件,
所以没有什么系统表可以取到系统时间,若你用的是ORACLE、SQL SERVER、
INFORMIX等大型数据库,里面有很多系统表,而且还有个DBMS(数据库管理系统)
在一直运行,那就可以了。
如ORACLE 中,select sysdate from dual就可以得到服务器的系统时间。

若你不能换数据库平台,就只能想别的办法了,如下面的方法可能行的通:
1、在服务器的数据库中创建一个系统时间表,专门记录系统时间用。
2、在服务器上开发一个小程序,每隔一定时间(如1分钟或1秒种等,随你的程序
的精度需要)设置一向系统时间表里的系统时间字段。
3、工作站上要取时间的话,从系统时间表里取。
 
问过很多次了,用dos命令:
NET TIME [//computer | /WORKGROUP:wgname] [/SET] [/YES]
 
请教 cAkk :
能不能给段程序说明怎样使用 Net Time 获得服务器时间.
多谢
 
如果你只是同步时间,那么没必要取得时间(看你题意是这样的),
你只要:
winexec('net time //servername /set /yes',sw_hide);
即可

 
delphi带有一个例子,可以取得internet上主机的时间,用的是TNMDateTime控件
在demos/fastnet/datetime/下
 
是啊,从数据库里直接取得时间更方便,只用一个select语句
参见我提的问题:http://202.120.85.61/delphibbs/DispQ.asp?LID=242207
 
在服务器上的一个应用程序的某个窗体上加一Edit控件,让他显示当前服务器时间,
在工作站的应用程序的窗体上加一个Edit控件,让他动态的显示那个Edit控件
显示的时间
 
谢谢 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

 
你这样还是不能解决界面被破坏的问题啊
 
后退
顶部