Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   guardar y determinar días entre rango de fechas..!! (https://www.clubdelphi.com/foros/showthread.php?t=68280)

kiozo 05-06-2010 01:45:56

guardar y determinar días entre rango de fechas..!!
 
hola que tal espero me puedan ayudar con mi problema!!

tengo una tabla que se llama viaticos..!! manejo fecha_inicial y fecha_final de los dias que el empleado saldra...!! si su fecha_inicial es el 07/03/2010 y fecha_final 10/03/2010 ..necesito guardar las fechas entre esos dias..! para el determinado empleado...!!

que se guarden..!

07/03/2010
08/03/2010
09/03/2010
10/03/2010...

espero su ayuda..!!

Casimiro Notevi 05-06-2010 01:47:44

¿Lo quiéres en delphi?, ¿en sql?, si es en sql, ¿para qué base de datos?

kiozo 05-06-2010 01:49:42

lo quiero en delphi7... estoy manejando sql server 2000!!

Casimiro Notevi 05-06-2010 19:18:00

Lo mejor en este caso es hacerlo desde la base de datos, mediante un procedimiento o trigger, aunque desde delphi puedes hacerlo usando un bucle que vaya aumentando la fecha inicial hasta que se iguale con la fecha final, para ello puedes usar la función: IncDay
Le pasas una fecha y el número de días que quieres aumentarla y te devuelve esa fecha que corresponda,

fechamanana := IncDay(fechahoy,1);

MAXIUM 05-06-2010 20:56:04

Cita:

Empezado por Casimiro Notevi (Mensaje 366296)
fechamanana := IncDay(fechahoy,1);

Código Delphi [-]
fechaayer := IncDay(fechahoy,-1);

kiozo 06-06-2010 01:49:47

Encontre una manera de hacerlo..!!
 
Cita:

Empezado por Casimiro Notevi (Mensaje 366296)
Lo mejor en este caso es hacerlo desde la base de datos, mediante un procedimiento o trigger, aunque desde delphi puedes hacerlo usando un bucle que vaya aumentando la fecha inicial hasta que se iguale con la fecha final, para ello puedes usar la función: IncDay
Le pasas una fecha y el número de días que quieres aumentarla y te devuelve esa fecha que corresponda,

fechamanana := IncDay(fechahoy,1);

Encontre una manera de hacerlo... pero ahora el problema es como comparar las fechas para que no me guarde fechas repetidas de un empleado...! trabaje con un memo no se si haya otra forma de hacerlo..!


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  FechaIni,FechaFin: Tdatetime;
  Fecha: string;
begin
   ShortDateFormat := 'dd/mm/yyyy';
  fechaIni :=  strtodate('07/03/2010');
  fechaFin := strtodate('10/03/2010');
   for i := trunc(fechaIni) to trunc(FechaFin) do
  begin
    Fecha  := datetostr(i);
    Memo1.lines.Add(fecha)
  end;
end;

Casimiro Notevi 06-06-2010 02:32:59

Si lo vas a guardar en la base de datos, no tienes problemas ya que puedes crear un campo índice y único para el par de campos "usuario" y "fecha"

kiozo 06-06-2010 03:35:48

Cita:

Empezado por Casimiro Notevi (Mensaje 366313)
Si lo vas a guardar en la base de datos, no tienes problemas ya que puedes crear un campo índice y único para el par de campos "usuario" y "fecha"



disculpa mi ignorancia..! soy nueva en esto... pero me podrias dar un ejemplo para crear un indice unico para dos campos..???...en este caso usuario y fecha

Casimiro Notevi 06-06-2010 10:36:14

No conozco MS Sql, pero supongo que será como cualquier otra BD sql, tendrás una opción para crear índices, le indicas los campos, y listo.

De todas formas, búscate información sobre procedimientos almacenados "store procedure", es mucho más cómodo y rápido hacerlo así que no en delphi.

kiozo 07-06-2010 00:29:52

Cita:

Empezado por Casimiro Notevi (Mensaje 366324)
No conozco MS Sql, pero supongo que será como cualquier otra BD sql, tendrás una opción para crear índices, le indicas los campos, y listo.

De todas formas, búscate información sobre procedimientos almacenados "store procedure", es mucho más cómodo y rápido hacerlo así que no en delphi.


segui tu consejo..! y logre que funcionara mi proceso..!! gracias..!!

Casimiro Notevi 07-06-2010 10:21:31

Me alegro mucho :)

GerTorresM 20-06-2010 15:02:35

establece número de días entre dos fechas
 
te suguiero que uses esta función - DaysBetween(dtNow, dtBirth);

Código Delphi [-]
 var dtNow, dtBirth : TDateTime;
    DaysFromBirth : integer;

dtNow := Now;
dtBirth := EncodeDate(1973, 1, 29);
DaysFromBirth := DaysBetween(dtNow, dtBirth);

gertorresm
Colombia


La franja horaria es GMT +2. Ahora son las 10:58:55.

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