Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 317
  • Last Modified:

Getting the server time from a networked Attendance System...

I am currently developing an attendance system that is connected to a server through the network.. I connect to the server by just indicating the IP address of the server in the .ini file of the attendance system..

Currently, I just use the time of the terminal used for the attendance system but this should not be the case.

How can I be able to get the server time as default time for my attendance system??

I am using Visual Basic 6.0 with MySQL as my database...
0
m_denise
Asked:
m_denise
3 Solutions
 
pambooCommented:
The below query will return u the current servertime in SQL server 2000.

SELECT ServerTime=convert(varchar, GETDATE(), 108)

- Rajan
0
 
Ivan_SkrinjaricCommented:
Put this in standard BAS module :

option Explicit

private Declare Function NetRemoteTOD Lib "Netapi32.dll" ( _
    tServer as Any, pBuffer as Long) as Long

private Type SYSTEMTIME
    wYear as Integer
    wMonth as Integer
    wDayOfWeek as Integer
    wDay as Integer
    wHour as Integer
    wMinute as Integer
    wSecond as Integer
    wMilliseconds as Integer
End Type

private Type TIME_ZONE_INFORMATION
    Bias as Long
    StandardName(32) as Integer
    StandardDate as SYSTEMTIME
    StandardBias as Long
    DaylightName(32) as Integer
    DaylightDate as SYSTEMTIME
    DaylightBias as Long
End Type

private Declare Function GetTimeZoneInformation Lib "kernel32" _
        (lpTimeZoneInformation as TIME_ZONE_INFORMATION) as Long

private Declare Function NetApiBufferFree Lib "Netapi32.dll" _
        (byval lpBuffer as Long) as Long

private Type TIME_OF_DAY_INFO
    tod_elapsedt as Long
    tod_msecs as Long
    tod_hours as Long
    tod_mins as Long
    tod_secs as Long
    tod_hunds as Long
    tod_timezone as Long
    tod_tinterval as Long
    tod_day as Long
    tod_month as Long
    tod_year as Long
    tod_weekday as Long
End Type

private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
        (Destination as Any, Source as Any, byval Length as Long)

public Function getRemoteTOD(byval strServer as string) as date
   
    Dim result as date
    Dim lRet as Long
    Dim tod as TIME_OF_DAY_INFO
    Dim lpbuff as Long
    Dim tServer() as Byte

    tServer = strServer & vbNullChar
    lRet = NetRemoteTOD(tServer(0), lpbuff)

    If lRet = 0 then
        CopyMemory tod, byval lpbuff, len(tod)
        NetApiBufferFree lpbuff
        result = DateSerial(tod.tod_year, tod.tod_month, _
                            tod.tod_day) + _
        TimeSerial(tod.tod_hours, tod.tod_mins - tod.tod_timezone, _
                   tod.tod_secs)
        getRemoteTOD = result
    else
        Err.Raise Number:=vbObjectError + 1001, _
        Description:="cannot get remote TOD"
    End If

End Function


Call it something like this:

private Sub Command1_Click()
    Dim d as date

    d = GetRemoteTOD("server name or IP address")
    MsgBox d
End Sub

0
 
fcislerCommented:
Ivan's code looks good, i know i wrote an app a little while back to set the time server and automatically re-sync. If you'd like it let me know
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now