Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tomar la hora de mi servidor en un programa desde una pc (https://www.clubdelphi.com/foros/showthread.php?t=76105)

eroblesh 08-10-2011 23:01:53

Tomar la hora de mi servidor en un programa desde una pc
 
Hola, aqui de nuevo molestando, alguien me podria ayudar para saber como puedo hacer para tomar la hora desde un servidor de mi LAN ala estacion de trabajo donde se esta ejecutandi mi aplicacion delphi?? Gracias!!

ecfisa 08-10-2011 23:41:02

Hola eroblesh.

No especificas con que motor de base de datos estas trabajando así que muchas respuestas serán válidas para tu pregunta. ;)

Comencemos por Firebird:
Código Delphi [-]
 SELECT CURRENT_TIME FROM RDB$DATABASE

Directo desde el command prompt, usando WinExec o ShellExecute también podes usar el comando: Net Time \\NOMBRE_DEL_SERVIDOR

Saludos.

eroblesh 09-10-2011 00:08:50

Cita:

Empezado por ecfisa (Mensaje 414997)
Hola eroblesh.

No especificas con que motor de base de datos estas trabajando así que muchas respuestas serán válidas para tu pregunta. ;)

Comencemos por Firebird:
Código Delphi [-]
 SELECT CURRENT_TIME FROM RDB$DATABASE

Directo desde el command prompt, usando WinExec o ShellExecute también podes usar el comando: Net Time \\NOMBRE_DEL_SERVIDOR;

Saludos.

Si es verdad pues, estoy usando acces, probe esa ide que me dices, que claro vi aqui, y pues jeje como era de esperarce no me funciono, en si lo que necesito es que de mi servidor win 2003 pueda tomar la hora, con mi aplicacion, para que cuando el usuario ejecute determinado proceso, aunque cambiara la hora del sistema, mi programa tome la de ese servidor se la actualize al windows porque estoy usando algo asi

TABLEDESCARGA.FieldByName('DESC_FECHA').ASSTRING:=DATETOSTR (NOW);
y ese "now" deseo que sea el corresto
no se si me explique bien???? espero que si


gracias mil!!!!!

ecfisa 09-10-2011 00:32:55

Hola eroblesh.

Si querés sincronizar la hora del equipo con la del servidor, para luego usar la sentencia de tu último mensaje, sería:
Código Delphi [-]
procedure TForm1.btnSyncClick(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'NET', 'TIME \\NOMBRE_DEL_SERVIDOR /SET /Y', nil, SW_HIDE);
end;

Saludos.

eroblesh 09-10-2011 01:20:34

Ok Gracias lo implemento y espero que funcione lo malo es que sera hasta el lunes por que hoy estoy programando en casa y pues el servidor y la LAN estan en en la oficina pero enserio te agradezco muchisimo !! el lunes estare informando si funciono gracias!!!!

eroblesh 09-10-2011 01:32:52

Perdon una pregunta mas, que unit tengo que declarar para agregar el ShellExecute? GraCIAS

eroblesh 09-10-2011 01:41:15

Cita:

Empezado por eroblesh (Mensaje 415008)
Perdon una pregunta mas, que unit tengo que declarar para agregar el ShellExecute? GraCIAS

YA VI EN QUE UNIDAD GRACIAS Y JUSTO LO ENCONTRE AQUI!!!!!!!!!!!!!!!!

eroblesh 11-10-2011 15:50:37

Muchas gracias !! el codigo funciono genial me va a ayudar mucho para el control de los usuarios GRACIAS de nuevo!

eroblesh 12-10-2011 04:52:27

Y solo por curiosidad intente hacer que en la sentencia que me diste

ShellExecute(Handle, 'open', 'NET', 'TIME \\SERVIDOR /SET /Y', nil, SW_HIDE);

'SERVIDOR' sea una variable, lo intente de varias formas pero me marca un erros no se si esto se pueda hacer:

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
var
   servidor:string;
begin
  servidor:='FCIANNA';
   ShellExecute(Handle, 'open', 'NET', 'TIME \\'+SERVIDOR+' /SET /Y', nil, SW_HIDE);
end;
me podrian comentar en que me esta fallando? gracias

Casimiro Notevi 12-10-2011 05:09:48

Por favor, no olvides poner etiquetas al código, gracias.
Ejemplo:



.

eroblesh 12-10-2011 05:51:37

Cita:

Empezado por Casimiro Notevi (Mensaje 415308)
Por favor, no olvides poner etiquetas al código, gracias.
Ejemplo:



.

OK gracias

ecfisa 12-10-2011 19:16:30

Cita:

Empezado por eroblesh (Mensaje 415307)
Y solo por curiosidad intente hacer que en la sentencia que me diste

ShellExecute(Handle, 'open', 'NET', 'TIME \\SERVIDOR /SET /Y', nil, SW_HIDE);

'SERVIDOR' sea una variable, lo intente de varias formas pero me marca un erros no se si esto se pueda hacer:

me podrian comentar en que me esta fallando? gracias

Hola eroblesh.

Código Delphi [-]
    ShellExecute(Handle, 'open', 'NET', PChar('TIME \\'+SERVIDOR+' /SET /Y'), nil, SW_HIDE);

Saludos.

AzidRain 12-10-2011 19:51:49

No es mas sencillo llenar los campos de fecha y hora (TIMESTAMP) directamente en el SQL, así siempre nos aseguramos que se guarda la hora del servidor.

No se si access tenga un tipo de datos TIMESTAMP pero los demas motores si lo tienen y puedes definir que solitos se llenen al crear un nuevo registro o bien al actualizarlo según lo desees.

eroblesh 13-10-2011 01:52:20

Cita:

Empezado por ecfisa (Mensaje 415374)
Hola eroblesh.

Código Delphi [-]
    ShellExecute(Handle, 'open', 'NET', PChar('TIME \\'+SERVIDOR+' /SET /Y'), nil, SW_HIDE);

Saludos.

oki gracias a mi se me habia ocurrido algo asi pero no lo he podido probar crees que funcione este codigo??

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
  servidor:string;
begin
  servidor:='TIME \\SERVIDOR /SET /Y';
   ShellExecute(Handle, 'open', 'NET', PChar(servidor), nil, SW_HIDE);
end;


grax

eroblesh 13-10-2011 01:57:14

Cita:

Empezado por AzidRain (Mensaje 415379)
No es mas sencillo llenar los campos de fecha y hora (TIMESTAMP) directamente en el SQL, así siempre nos aseguramos que se guarda la hora del servidor.

No se si access tenga un tipo de datos TIMESTAMP pero los demas motores si lo tienen y puedes definir que solitos se llenen al crear un nuevo registro o bien al actualizarlo según lo desees.


Hola gracias por la respuesta y si si hay algo asi en acces pero la verdad me vi obligado a usar el acces por lo menos en la primera etapa de implementacion, fue algo obligatorio y de por si no confio mucho en el acces no queria dejarle casi nada al acces que sea solo un deposito de mis datos. GRACIAS!!!

ecfisa 13-10-2011 02:02:19

Cita:

Empezado por eroblesh (Mensaje 415432)
oki gracias a mi se me habia ocurrido algo asi pero no lo he podido probar crees que funcione este codigo??

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
  servidor:string;
begin
  servidor:='TIME \\SERVIDOR /SET /Y';
   ShellExecute(Handle, 'open', 'NET', PChar(servidor), nil, SW_HIDE);
end;
grax

No puedo probarlo en este momento, pero entiendo que tendría que funcionar correctamente.

Un saludo.

eroblesh 13-10-2011 02:13:53

Cita:

Empezado por ecfisa (Mensaje 415434)
No puedo probarlo en este momento, pero entiendo que tendría que funcionar correctamente.

Un saludo.

Si yo tampoco tengo donde probar, ya sera hasta mañana, y lo estare informando por aca MIL gracias de nuevo!!!!

eroblesh 13-10-2011 21:46:33

Cita:

Empezado por eroblesh (Mensaje 415436)
Si yo tampoco tengo donde probar, ya sera hasta mañana, y lo estare informando por aca MIL gracias de nuevo!!!!

Gracias ya probe los codigos ambos funcionas me quedo con el que pasaste gracias!!!!


La franja horaria es GMT +2. Ahora son las 14:27:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi