Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
recorrer una tabla para buscar alguna fecha especifica

hola a todos una pregunta quiero saber como puedo recorrer una tabla cuyos datos son por ejemplo:

Código Delphi [-]
total     fecha         hora
----------------------------
50.0  29-09-2011   05:29:00
24.4  30-09-2011   05:59:00

lo que quiero hacer es que si ingreso otro total con la misma fecha 30-09-2011 este me actualize dicho campo y si ingreso otro total con fecha 01-10-2011 este me inserte un nuevo campo.

lo que quiero es eso insertar totales de cada dia y se vayan guardando cada uno en una fila.. como puedo hacer alguna sugerencia ?

gracias
Responder Con Cita
  #2  
Antiguo 30-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
confunde un poco el titulo
recorrer una tabla?

lo que quieres parec algo mas complejo
mas o menos asi

si la fecha existe entonces edit y sumo los importes
si la fecha no existe entonces insert y sumo importes

tienes algo de codigo?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 30-09-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
si pero mientras voy insertando no tengo que recorrer la tabla para saber si la fecha existe y updatear o si la fecha del dia actual es mayor que las ya almacenadas para poder insertar la nueva fecha ?

no no tengo codigo.. mas bien necesito hacer algo asi y no tengo muchas opciones

ya hice eso de que

si la fecha existe updatear

si la tabala esa vacia o la fecha almacenada es menor que la del sistema (dia actual)
entonces inserto..

pero esto solo me hace la comparacion con la primera fila..


ya probe agregando valores a la base de datos para ver si funcionaba y pues como repito solo compara con la primera fila no con la segunda ni la tercera

por eso puse el titulo de recorrer la tabla viendo cada fila si la fecha es menor que la del dia actual para insertar...

alguna idea ? necesito opciones

gracias
Responder Con Cita
  #4  
Antiguo 30-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Rofocale.

Podés hacerte un procedimiento al efecto, por ejemplo:
Código Delphi [-]
procedure InsertaModifica(const Fecha: string; const Value: Double);
begin
  with TIBQuery.Create(nil) do
  try
    Database:= DataModule1.IBDatabase1;
    SQL.Text:= 'SELECT * FROM TABLA WHERE FECHA = :DATE';
    ParamByName('DATE').AsString:= Fecha;
    Open;
    if IsEmpty then   // ¿ la fecha existe ?
    begin             // no, insertar
      Close;
      SQL.Clear;
      SQL.Add('INSERT INTO TABLA (FLOTANTE, FECHA) ');
      SQL.Add('VALUES (:FLOAT,:FECHA)');
    end
    else              // si, modificar
    begin
      Close;
      SQL.Clear;
      SQL.Add('UPDATE TABLA SET ');
      SQL.Add('FLOTANTE = :FLOAT ');
      SQL.Add('WHERE FECHA = :FECHA');
    end;
    ParamByName('FLOAT').AsFloat:= Value;
    ParamByName('FECHA').AsString:= Fecha;
    ExecSQL;
    DataModule1.IBTransaction1.Commit;
  finally
    Free;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
  InsertaModifica('12/09/2011', 999.99);

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-09-2011 a las 07:42:17. Razón: Agregar comentarios
Responder Con Cita
  #5  
Antiguo 30-09-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
una pregunta iba a abrir otro hilo tambien para esta pregunta pero justo vi en tu funcion usas commit siempre hacia un exesql y close pero el programa no me guarda los cambios en la base de datos hasta que cierre el programa.. esto a que se debe ? tengo que hacer un commit para que se guarde de inmediato sin cerrar el programa?
te agradeceria la respuesta.

gracias
Responder Con Cita
  #6  
Antiguo 01-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Rofocale.

Commit almacena definitivamente las modificaciones, inserciones y borrados relacionadas con la transacción actual y termina la transacción actual, teniendo que usar StartTransaction para comenzar nuevamente la transacción.
Si queres aplicar los cambios y retener la transacción, en lugar de Commit, podés usar CommitRetaining.
Las acciones inversas son Rollback y RollbackRetaining respectivamente.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-10-2011 a las 00:27:56.
Responder Con Cita
  #7  
Antiguo 03-10-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Solo que ecfisa está suponiendo que se usa Firebird/Interbase como motor de base de datos, lo cual podría no ser cierto.

Rofocale, ¿es Firebird o Interbase el motor de base de datos que estás utilizando? Por que si es así, el ejemplo de ecfisa te debe funcionar sin problemas.



Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #8  
Antiguo 04-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por maeyanes Ver Mensaje
Hola...
Solo que ecfisa está suponiendo que se usa Firebird/Interbase como motor de base de datos, lo cual podría no ser cierto.

Rofocale, ¿es Firebird o Interbase el motor de base de datos que estás utilizando? Por que si es así, el ejemplo de ecfisa te debe funcionar sin problemas.

Saludos...
Hola maeyanes.

En este caso fué una presunción con cierta certeza. Previamente busqué Firebird como palabra clave y Rofocale como usuario . (si bién es cierto que podría trabajar con más de uno )

Y para aquellos que miran el dedo cuando se señala la luna, tu comentario, trae un mensaje muy importante: Brinden toda la información posible hacerca del problema.

Cosa esta, que la mayoría olvida o no tiene en cuenta a la hora de plantear las consultas en sus mensajes.


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Recorrer Una Tabla O Dbgrid Para Validar Datos donpedro Conexión con bases de datos 10 18-07-2011 17:33:06
fecha de inicio del mes de una fecha especifica JoseAntonio Firebird e Interbase 8 01-01-2009 02:43:53
Buscar fecha en una tabla access dmassive Tablas planas 5 24-01-2008 19:24:07
como filtrar las fechas que hay desde una fecha especifica a otra andre navarrete Conexión con bases de datos 3 13-08-2006 22:12:50
Buscar y recorrer enlaces desde una página... raxsys Internet 1 04-10-2004 16:49:06


La franja horaria es GMT +2. Ahora son las 06:29:01.


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