我现在在做一个项目,客户端的时间都使用的Now(),这样的话和服务器时间不一样,容易出问题,怎么样保持一致呢,是在程序启动时调整客户端时间,还是在程序中使用从服务器端取得的时间呢,如果使用服务器端时间,是不是在每次使用的时候都要取一下?

解决方案 »

  1.   

    oracle的Private Sub System_Date_Time_Set()
        dim cn as new adodb.connection
        Dim S_Rst    As New ADODB.Recordset
        Dim S_Sql    As String
        
        P_Connect.CursorLocation=adUseClient
        P_Connect.open ""    S_Sql = "Select To_Char(SYSDATE,'yyyy-mm-dd') " & _
                "     , To_Char(SYSDATE,'hh24:mi:ss') " & _
                "  From Dual                          "    S_Rst.Open S_Sql, cn
        
        Date = S_Rst(0)
        Time = S_Rst(1)
        
        S_Rst.Close
        cn.close
        set cn = nothing
        Set S_Rst = NothingEnd Sub
      

  2.   

    如果你是做数据库类的话,可以利用下面的SQL得到服务器时间,然后在客户端启动时比较时间,相差大了就要求更改客户端时间,否则不允许启动即可。
    select getdate(); (MSSQL数据库)
    select sysdate from sys.dual;(ORACLE数据库)
    如果是普通的软件的话,可以考虑使用SHELL命令得到服务器时间
    net time "\\OhterComputerName" /set /yes
      

  3.   

    直接取服务器时间:getdate()
      

  4.   

    我是用的MSSQL数据库,我先试一下
      

  5.   

    问一下
        Date = S_Rst(0)
       Time = S_Rst(1)
    可不可以直接一下就设置好的
    我用DateTime好像不行