用VB+SqlServer开发程序。我在设置一个ID时(以时间+编号方式管理),考虑到客户端系统时间有时不准确,我想直接利用SqlServer服务器时间设置ID。
请问:如何获得SqlServer服务器时间?
www.Emugua.net站长谢谢您!

解决方案 »

  1.   

    record.open "select getdate() as da"
    If record.State = 0 Then
            MsgBox "读取服务器时间时出错!" + Chr(13) + "请与管理员联系!", vbInformation + vbOKOnly, "错误信息"
        Else
            If Format(Date, "yyyy-mm-dd") <> Format(record!da, "yyyy-mm-dd") Then
               If MsgBox("本机系统日期与服务器日期不同!" + Chr(13) + "是否将用服务器日期替换本机系统日期!", vbYesNo + vbInformation, "提示") = vbYes Then
                  Date = Format(record!da, "yyyy-mm-dd")
               Else
                 MsgBox "调整错误的系统日期后再运行本程序!", vbOKOnly + vbInformation, "提示"
                 End
               End If
            End If
        End If这也是我曾经苦苦思索的。去掉多余的,相信这些你能全部用上。(一齐努力)
      

  2.   

    在FormLoad中加:
    Shell "net time /set /y", vbHide
      

  3.   

    指定服务器
    Shell "net time \\ServerName /set /y", vbHide
      

  4.   

    在存储过程内用GetDate()返回一个日期数据。
      

  5.   

    阿龙:用net time命令不能得到返回值啊!你能否说详细些?
    红美:存储过程内用GetDate()返回一个日期数据,也请你写详细些好吗?
    潇湘予的回答有待考虑。
      

  6.   

    Public Function GetServerTime() As String
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    Dim sql As String
    sql = "select getdate() ServerDate"
    rst.Open sql, CnnToData, adOpenKeyset, adLockReadOnly, adCmdText
    GetServerTime = FormatDateTime(rst!ServerDate, vbShortDate)
    rst.Close
    Set rst = Nothing
    End Function你只需改一下cnntodata就可以用了。