PDA

Ver la Versión Completa : Tomar la hora de mi servidor en un programa desde una pc


eroblesh
08-10-2011, 23:01:53
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:

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
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:

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:

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
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:

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:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

.

eroblesh
12-10-2011, 05:51:37
Por favor, no olvides poner etiquetas al código, gracias.
Ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

.

OK gracias

ecfisa
12-10-2011, 19:16:30
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.


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
Hola eroblesh.


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??


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
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
oki gracias a mi se me habia ocurrido algo asi pero no lo he podido probar crees que funcione este codigo??


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
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
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!!!!