Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Insert continuo entre dos fechas

Hola compañeros, quería preguntar lo siguiente, ¿se puede hacer un insert continuo entre dos fechas?, o sea, como una especie de ciclo o bucle, por ejemplo, quiero insertar mi nombre entre dos fechas:

las fechas serían entre el 12/07/2008 y 15/07/2008, este sería el resultado.

Cita:
Nombre Fecha

Fernando 12/07/2008
Fernando 13/07/2008
Fernando 14/07/2008
Fernando 15/07/2008
¿cómo lo podría hacer?, ¿alguna idea?

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 13-07-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
tu mismo te contestas en tu propia pregunta.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
tu mismo te contestas en tu propia pregunta.
Sé que es con un ciclo, lo que pasa es que nunca lo he hecho con un rango de dos datos, es muy fácil hacer algo linea por linea de forma individual, por eso abrí el hilo, en mi mente no me llega la forma de hacerlo, lo que tengo en un form son dos datetimepicker donde selecciono los dos datos, y hacer un insert a partir de ese rango.

Disculpa mi ignorancia, traté de encontrarlo en el foro pero no lo hallé, es la primera vez que se me presenta esa situación.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 13-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Esta bien, por esta vez se te perdona.
Saludos
Responder Con Cita
  #5  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Esta bien, por esta vez se te perdona.
Saludos
Gracias amigo
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 13-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Amigo sinceramente no entiendo lo que pretendes.
Si quieres hacer un insert, no deberias usar una clausula where sin mucho problema?.
No se, no crees que un bucle o cliclo o esas cosas es demasiado?.
Saludos
Responder Con Cita
  #7  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
, no amigo, ojalá fuera así de fácil, estoy haciendo una aplicación de control de asistencia de empleados, hay una parte donde se asigna las vacaciones, en este momento debo registrar dia por dia las vacaciones y eso es algo muy tedioso, sólo quiero que se registre los datos como una especie de ciclo entre dos fechas, si yo me voy de vacaciones desde hoy 12/07/2008 hasta el 15/07/2008, necesito que se inserte de manera automática los dias comprendidos entre esas dos fechas, no sé si todavía me hago entender, por favor hagamelo saber que trataré de explicarlo mejor.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #8  
Antiguo 13-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues no se, como hace ya unos meses que no programo, pues se me esta olvidando.
Pero:
Inset entre fecha1 y fecha2 where usuario = X.
Ya sabes, traducido a sql (es que ahora no tengo ganas de pensar), pero esa es la idea.
De que se puede se puede.
Saludos
Responder Con Cita
  #9  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Pues no se, como hace ya unos meses que no programo, pues se me esta olvidando.
Pero:
Inset entre fecha1 y fecha2 where usuario = X.
Ya sabes, traducido a sql (es que ahora no tengo ganas de pensar), pero esa es la idea.
De que se puede se puede.
Saludos
A ver, ¿de donde saco la función entre?, , en broma veré como hago, gracias.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 13-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código SQL [-]Insert Between +DateTimePicker1.Date+ and +DateTimePicker2.Date+ Where Usuario = Tu

Saludos

Última edición por Caral fecha: 13-07-2008 a las 02:42:13.
Responder Con Cita
  #11  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Código SQL [-]Insert Between +DateTimePicker1.Date+ and +DateTimePicker2.Date+ Where Usuario = Tu

Saludos
Hola, me es imposible usar esa sentencia ya que está incompleta, no indicas los campos ni tablas a insertar .

Bueno, intenté hacer algo como esto, pero dada mi ignorancia no tenía que funcionar :

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var I: TDateTime;
begin
for I := StrToDate(Edit1.Text) to StrToDate(Edit2.Text) - 1 do
  begin
    ZQuery1.SQL.Text := 'Insert Into PRUEBA(REGNO,EMPID,EMPLEADO,FECHA) VALUES(NULL,1,:NOM,:FEC)';
    ZQuery1.ParamByName('NOM').AsString := 'Fernando';
    ZQuery1.ParamByName('FEC').AsDate := I;
    ZQuery1.ExecSQL;
  end;
end;

No me funcionó ya que para un ciclo for debe ser de tipo ordinal.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #12  
Antiguo 13-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Aquí un ejemplo, suponiendo que las fechas inicial y final las tomas de sendos DateTimePicker:

Código Delphi [-]
var
  Fecha, FechaFinal: TDate;

begin
  ZQuery1.SQL.Text := 'insert into tabla (empleado, fecha) values(:empleado, :fecha)';

  Fecha := DateTimePicker1.Date;
  FechaFinal := DateTimePicker2.Date;

  while Fecha < FechaFinal do
  begin
    ZQuery1.ParamByName('empleado').AsString := 'fernando';
    ZQuery1.ParamByName('fecha').AsDate := Fecha;
    ZQuery1.ExecSQL;

    Fecha := Fecha + 1;
  end;
end;

// Saludos
Responder Con Cita
  #13  
Antiguo 13-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Aquí un ejemplo, suponiendo que las fechas inicial y final las tomas de sendos DateTimePicker:
Creo que esta solución mas segura sobre el tipo de dato manejado

Código:
var
  Fecha, FechaFinal: TDate;

begin
  ZQuery1.SQL.Text := 'insert into tabla (empleado, fecha) values(:empleado, :fecha)';

  Fecha := DateTimePicker1.Date;
  FechaFinal := DateTimePicker2.Date;

  while (Fecha < FechaFinal) do
  begin
    ZQuery1.ParamByName('empleado').AsString := 'fernando';
    ZQuery1.ParamByName('fecha').AsDate := Fecha;
    ZQuery1.ExecSQL;
    IncDay(Fecha,1); 
  end;
end;
Mas detalles sobre la función IncDay aqui

HTH
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal

Última edición por donald shimoda fecha: 13-07-2008 a las 07:53:20. Razón: Agregue data importante
Responder Con Cita
  #14  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Muchas gracias Roman eso era lo que estaba buscando me funcionó de pelos, amigo Donald tu propuesta no me funcionó, porque con la función IncDay lo que hace es que me repite la variable fecha tantas veces posible , pareciera que no tuviera fin . Ahora veré como excluyo los dias feriados y fin de semanas, cualquier cosa les comento.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #15  
Antiguo 13-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo de IncDay sí funciona, de hecho IncDay lo único que hace es sumar el segundo parámetro a la fecha que se le pasa. El problema que tuviste se debe a que IncDay es una función así que debes usarla así:

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

Tal como estaba, el valor de Fecha nunca cambia y el ciclo no termina.

// Saludos
Responder Con Cita
  #16  
Antiguo 13-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
¡Changos! (Como ContraVeneno ), tienes razón roman no me había fijado en ese detalle.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #17  
Antiguo 13-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Lo de IncDay sí funciona, de hecho IncDay lo único que hace es sumar el segundo parámetro a la fecha que se le pasa. El problema que tuviste se debe a que IncDay es una función así que debes usarla así:

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


Tal como estaba, el valor de Fecha nunca cambia y el ciclo no termina.

// Saludos
Tengan paciencia, eran las 4 de la mañana.
Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #18  
Antiguo 14-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola enecumene, para saber los fines de semana puedes utilizar la función DayOfTheWeek de DateUtilis, si te devuelve 6 o 7, es porque es sabado o domingo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36
Entre fechas erick_jesus Impresión 1 29-05-2006 19:10:50
operaciones entre fechas Torreblanca Varios 4 09-07-2005 20:20:27
minutos entre dos fechas jmlifi Firebird e Interbase 3 15-04-2005 12:39:36


La franja horaria es GMT +2. Ahora son las 20:11:41.


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
Copyright 1996-2007 Club Delphi