Visual Basic - COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCAL

Life is soft - evento anual de software empresarial
 
Vista:

COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCAL

Publicado por Edgar (193 intervenciones) el 03/11/2005 14:32:51
Hola colegas tengo una gran inquietud con mucha urgencia ya que necesito saber como puedo tomar en el Sistema el Date del Servidor y no del Equipo Local en que se esta ejecutando, esto es muy importante y no he conseguido informacion concerniente a esto. Actualmente tengo de la siguiente manera..... txtfecha = Date

Existira algún comando o funcion el cual direccione por la ip o algo asi para tomar la fecha y hora del Servidor??? Agradezco de sus conocimientos colegas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Eli (49 intervenciones) el 03/11/2005 15:09:21
Para cargar la fecha del servidor,usa la secuencia SQL en un RecordSet, por ejemplo

Sub FechaServer()
Dim f As Recordset
Set f = New Recordset
f.ActiveConnection = CE
f.Open "select getdate() as Fechas"
txtfecha = f!Fechas
f.Close
Set f = Nothing
End Sub

y en el Load :

FechaServer

salu2, espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por EDGAR (193 intervenciones) el 03/11/2005 15:43:37
Muchas gracias colega, lo hago de esa manera pero me sale el siguiente error:
La Funcion Getdate no esta definida en la expresion, como podre hacer en este sentido? y el error es en la siguiente fila:

f.Open "select getdate() as Fechas"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Christian (675 intervenciones) el 03/11/2005 16:39:37
solo usa

dim fecha_server as string

fecha_server =NOW()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por ricardo (5 intervenciones) el 03/11/2005 17:25:55
lo que no me gusta de este foro es que puede ingresar cualquier *I*D*I*O*T*A y rellenar con sus respuestas ñoñas,
toma esta función te sirve para tomar la hora y fecha del servidor.
si no saben limitense a no responder y no andar inventando tonteras

Copiala en un módulo bas y luego la invocas desde los formularios con un call
PserveRName = "PC_SERVER"
aca debes colocar el nombre del servidor
esta variable contiene la fecha dServDate
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Option Explicit
Public Declare Function NetRemoteTOD Lib "NETAPI32.DLL" _
(yServer As Any, _
pBuffer As Long) As Long

Public Declare Function NetApiBufferFree Lib "NETAPI32.DLL" _
(ByVal lpBuffer As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, _
hpvSource As Any, _
ByVal cbCopy As Long)

Private Type TIME_OF_DAY
Elapsedt As Long
Msecs As Long
Hours As Long
Mins As Long
Secs As Long
Hunds As Long
Timezone As Long
Tinterval As Long
Day As Long
Month As Long
Year As Long
Weekday As Long
End Type

Const NERR_SUCESS = 0

Public Function fndServerTime() As Date

Dim udtTime As TIME_OF_DAY
Dim pudtTime As Long
Dim lResult As Long
Dim abServer() As Byte
Dim dServDate As Date
Dim PserveRName As String
Dim TPTR
PserveRName = "PC_SERVER"
'Este nombre le buscas en el entorno de RED para saber
'como se llama, bajo la red de Windows, el servidor de datos
abServer = "\\" & PserveRName
lResult = NetRemoteTOD(abServer(0), pudtTime)

If lResult = NERR_SUCESS Then
'Ahora hay que copiar esa zona de memoria a nuestro udt.
CopyMemory udtTime, ByVal pudtTime, Len(udtTime)
NetApiBufferFree (TPTR)

'Por ultimo montamos la fecha
With udtTime
dServDate = DateSerial(.Year, .Month, .Day)
dServDate = dServDate + TimeSerial(.Hours, .Mins - .Timezone, .Secs)
fndServerTime = dServDate
Date = dServDate

End With
Else
'Error. Poner tratamiento de errores (Ej: no existe el servidor)
End If

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por EDGAR (193 intervenciones) el 03/11/2005 18:46:35
MUCHISIMAS GRACIAS COLEGA, TODO EL CONTENIDO DE TU RESPUESTA ME SIRVIO PERFECTAMENTE =) CONGRATULATIONS FRIENDS. TENGO UNA DUDA YA QUE COLOQUE UN TIMER PARA SINCRONIZAR EL TIEMPO REFLEJANDO LOS SEGUNDOS PARA QUE DE ESTA MANERA NO QUEDE UNA HORA ESTATICA AL VISUALIZAR LA APLICACION PERO RESULTA QUE ME MUESTRA LA FECHA/HORA BIEN PERO EN CADA CIERTO TIEMPO CAMBIA Y COLOCA 12:00:00 A.M Y LUEGO SE VUELVE A MOSTRAR TAL CUAL COMO INDICA EL SERVIDOR, A QUE SE DEBE ESTO??

EL TIMER LO PROGRAME DE LA SIGUIENTE MANERA:
EN EL FORM_LOAD = Timer1.Interval = 1000 (QUE LA CANTIDAD DE LOS INTERVALOS LA HE VARIADO A VER SI PUDIERA SER ESO PERO NO)

Private Sub Timer1_Timer()
LBLfechserver = fndServerTime
End Sub

AGRADEZCO MUCHO TU AYUDA, ESTAMOS A LA ORDEN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NO ENCUETRA ARCHIVO NETAPI32.DLL???

Publicado por EDGAR (193 intervenciones) el 04/11/2005 14:54:25
hola colega, tengo un gran problema porque ya realizo toda la codificación mencionada anteriormente y en el equipo que estoy programando que tiene sistema operativo Windows Xp funciona perfectamente en la aplicacion pero cuando intento correr el sistema en las pc con windows 98 me muestra un mensaje de error que dice que "No se encuentra el archivo Netapi32.Dll" al buscar el archivo en la maquina donde muestra el error lo encuentro en la carpeta C:\Windows\System\ ya que tambien cuando hize el empaquetado para la instalacion fue agregado. Que podra suceder con este error y como podre solucionarlo??? Gracias por la ayudas, se que este material puede ser provechoso para muchos amigos mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO ENCUETRA ARCHIVO NETAPI32.DLL???

Publicado por Ricardo (5 intervenciones) el 04/11/2005 15:06:21
Cuando hablas de corre el sistema te refieres al ejecutable, es decir a la instalación?.
Lo que debes hacer es empaquetar en la misma versión del S.O donde va a correr, es decir, si instalas en XP empaquetas en XP, si instalas en 98 empaquetas en 98, el problema son las versiones de las dll del sistema operativo Windows.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO ENCUETRA ARCHIVO NETAPI32.DLL???

Publicado por EDGAR (193 intervenciones) el 04/11/2005 15:27:02
SI COLEGA, DISCULPA POR EL TERMINO USADO, CUANDO HABLO DE CORRER ME REFIERO A EJECUTAR LA APLICACION LUEGO DE QUE HAYA SIDO INSTALADA, INTENTARE LO QUE ME DICES PERO ENTONCES SI ES NECESARIO INSTALARLO EN OTROS EQUIPOS CON WINDOWS ME O 2000 HABRIA QUE HACER PAQUETES DISTINTOS PARA CADA UNO DE ELLOS? GRACIAS DE ANTEMANO POR ACLARARME ESTAS DUDAS QUE TENGO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Víctor (3 intervenciones) el 07/11/2005 21:13:06
Hola, No soy experto en VB pero parece que todo depende del gestor de la base de datos.

en MySQL es Select CURDATE()
en SQL SERVER y ACCESS es Select DATE()

porque hice la prueba con

Dim RS As Recordset
Dim FechaHora As Variant
Query = "select date() & time() as FechHor"
'si quieres solo la fecha Query = "select date()"
Set RS = Datos.OpenRecordset(Query)
FechaHora = RS!FechHor

en una base Access y me entregó "07/11/200505:15:08p.m."como resultado del Servidor
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Víctor (3 intervenciones) el 07/11/2005 21:29:26
Olvidé mencionar que la base debe residir en el Servidor porque el gestor de la base toma la fecha del sistema (del Servidor en este caso)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Fernando Martin Gan (2 intervenciones) el 30/12/2005 21:09:17
en Sql
Fecha y hora del servidor
SELECT GETDATE()

Fecha y hora del servidor ( por separado )
SELECT CONVERT(VarChar,DATEPART(DD,GETDATE()))+'/'+ CONVERT(VarChar,DATEPART(MM,GETDATE()))+'/'+ CONVERT(VarChar,DATEPART(YY,GETDATE())) AS ReturnValue

SELECT CONVERT(VarChar,DATEPART(HH,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(MI,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(SS,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(MS,GETDATE())) AS ReturnValue

en Access 2000
Fecha
SELECT Date()

Hora
SELECT Time()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO TOMAR DATE DEL SERVIDOR Y NO DE LA PC LOCA

Publicado por Fernando Martin Gan (2 intervenciones) el 30/12/2005 21:11:25
en Sql
Fecha y hora del servidor
SELECT GETDATE()

Fecha y hora del servidor ( por separado )
SELECT CONVERT(VarChar,DATEPART(DD,GETDATE()))+'/'+ CONVERT(VarChar,DATEPART(MM,GETDATE()))+'/'+ CONVERT(VarChar,DATEPART(YY,GETDATE())) AS ReturnValue

SELECT CONVERT(VarChar,DATEPART(HH,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(MI,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(SS,GETDATE()))+':'+ CONVERT(VarChar,DATEPART(MS,GETDATE())) AS ReturnValue

en Access 2000
Fecha
SELECT Date()

Hora
SELECT Time()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar