C cslegend Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-21 #1 有哪位大侠知道怎样是客户机的系统时间与服务器的系统时间同步。 我尝试使用GetSystemTime(),但他取的是格林威治时间,不同的操作系统 具有各自的时区,无法实现时间同步。
T TYZhang Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-21 #2 如果是局域网,可以用winexec调用net //server time /set /y 来同步时间。
G gale Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-21 #3 procedure TMainData.SyncServerTime; var dtm:TDateTime; dm:TSystemTime; begin Query.Close; Query.Sql.Clear; Query.Sql.Add('Select GetDate() as dtm'); Query.Open; dtm:=Query.FieldByName('dtm').AsDateTime; Query.Close; //ShowMessage('Server Time='+DateTimeToStr(dtm)); DateTimeToSystemTime(dtm,dm); if(not SetLocalTime(dm))then begin MessageDlg('同步服务器时间错误!.', mtError, [mbOK], 0); Halt; end; end;
procedure TMainData.SyncServerTime; var dtm:TDateTime; dm:TSystemTime; begin Query.Close; Query.Sql.Clear; Query.Sql.Add('Select GetDate() as dtm'); Query.Open; dtm:=Query.FieldByName('dtm').AsDateTime; Query.Close; //ShowMessage('Server Time='+DateTimeToStr(dtm)); DateTimeToSystemTime(dtm,dm); if(not SetLocalTime(dm))then begin MessageDlg('同步服务器时间错误!.', mtError, [mbOK], 0); Halt; end; end;
慕 慕容乾坤 Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-21 #4 来晚了。 如果数据库是SQL SERVER 的话,可以用SELECT GETDATE() 如果用DELPHI应该是WinExec('net.exe time //KINGS /set /yes',SW_HIDE); ~~~~~ 这是服务器名
来晚了。 如果数据库是SQL SERVER 的话,可以用SELECT GETDATE() 如果用DELPHI应该是WinExec('net.exe time //KINGS /set /yes',SW_HIDE); ~~~~~ 这是服务器名
R rongs Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-21 #5 如果是三层的话,可以在应用程序服务器中设置一个方法,取服务器的时间,然后在客户 端直接调用此方法,我就是这样做(在局域网中).