Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
hacer consultas buscando por fecha

hola buenos dias,tengo un problemilla...para hacer una consulta desde dedelphi buscando por el campo de la fecha, que en interbase es de tipo date, con string en delphi no me lo reconoce, que tipo de dato he de utilizaar?? o como podria hacerlo de otra manera??? gracias
Responder Con Cita
  #2  
Antiguo 07-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
es problema del formato de fechas. Seguramente estás pasando un formato dd/mm/yyyy cuando le deberías de pasar el formato mm/dd/yyyy

Mírate la función FormatDateTime en la ayuda, que es fácil de manejar y te solucionará el problema
Responder Con Cita
  #3  
Antiguo 07-06-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
el caso es que cuando lanzo la consulta desde interbase buscando una fecha, que se que existe y pongo exactamente lo mismo q esta guardado, y que asi me lo coge, tpc me saca el resultado ded la consulta, yo creo q es alguna incompatibilidad de tipos de datos string y date, pero no se lo que tengo que hacer... en visual se que para buscar por fecha habia q poner una almohadilla... no hay otra manera parecida aqui???

el formatdatetime creo q no me sirve, porque el mes dia y año estan ordenados exactamente igual en la consulta y en la base...
Responder Con Cita
  #4  
Antiguo 07-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Bueno, las fechas han de ir entrecomilladas

Si pones algo de código o la sentencia SQL quizás te podamos ayudar más
Responder Con Cita
  #5  
Antiguo 07-06-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
es esto:
ds_lecturas.close;
ds_lecturas.selectSQL.Text:='select * from lecturas where numero=' + quotedstr(num) + ' and fecha=' + quotedstr(fecha);
ds_lecturas.Open;
ds_lecturas.Delete;
dtrans.Commit;


en el delete me da fallo porque dicee que el dataset esta vacio, ya lo he comprobado, y lo que busco existe en la base de datos...y num y fecha tienen los datos correctos, gracias!
Responder Con Cita
  #6  
Antiguo 07-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
quizás fecha no está en el formato correcto (es decir mm/dd/yyyy) y por eso no encuentra registros

De todas maneras, creo que es complicarse algo la cosa hacer un select para luego hacer un delete. Podrías hacer directamente un SQL de Delete en un Query (TQuery, TIBQuery, ...... según los componentes que uses)

Código Delphi [-]
MiQuery.SQL.Text := 'delete from lecturas where numero=' + quotedstr(num) + 
            ' and fecha = ' + quotedstr(fecha);
MiQuery.ExecSQL;
Responder Con Cita
  #7  
Antiguo 07-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Un par de consideraciones, ¿ Numero es numérico ? en este caso no hay que poner delimitadores, y el FormatDateTime lo tienes que poner obligatoriamente, puesto que sinó te cogerá el formato del sistema, el cual puede ser distinto en cada ordenador.

Es decir :

Código:
MiQuery.SQL.Text := 'delete from lecturas where numero=' + IntToStr(num) + 
		' and fecha = ' + QuotedStr(FormatDateTime('mm/dd/yyyy', fecha));
MiQuery.ExecSQL;
NOTA : Porqué en la base de datos veas las fechas como dd/mm/yyyy no quiere decir que internamente se guarden en este formato. Interbase/Firebird siempre las trata internamente como mm/dd/yyyy, y en una sentencia las tienes que pasar en este formato. (Si lo ves almacenado como dd/mm/yyyy es solo porqué se hace la transformación en el momento de presentarlo en pantalla, para mayor comodidad del usuario).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 07-06-2004 a las 13:37:59.
Responder Con Cita
  #8  
Antiguo 07-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por guillotmarc
Hola.
Hola

Cita:
Empezado por guillotmarc
Un par de consideraciones, ¿ Numero es numérico ? en este caso no hay que poner delimitadores
de acuerdo con esto

Cita:
Empezado por guillotmarc
, y el FormatDateTime lo tienes que poner obligatoriamente, puesto que sinó te cogerá el formato del sistema, el cual puede ser distinto en cada ordenador.
no de acuerdo con esto. La variable Fecha de VRO es de tipo string, por lo que no sabemos si ya está en el formato deseado. Además, para usar la función FormatDateTime, primero tendríamos que pasar el string a fecha con un StrToDate

Ala, a pasar un buen día
Responder Con Cita
  #9  
Antiguo 07-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Si tienes razón.

Es una chapuza. No debería trabajar con fechas en cadenas, solo le van a traer problemas por el formato.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #10  
Antiguo 07-06-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
bueno voy a probar, respecto a los metodos que utilizo, ya se que son muy rudimentarios, pero es el primer programa que hago de deelphi y nunca he dado clases ni tengo manuales ni nada...asi que me las apaño como puedo...
Responder Con Cita
  #11  
Antiguo 07-06-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
bueno, ya me salio muchas grgacias, al final si que hacia falta el formatdatetime, esque segun vi en el ejemplo de la ayuda, pense que no me serviria... bueno, muchas gracias
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


La franja horaria es GMT +2. Ahora son las 10:34:15.


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