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 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
Filtrar tabla por dos campos

¿qué debo hacer para filtrar una tabla por dos campos?

Código Delphi [-]
Tabla.Filter:=(('FECHA = ' + QuotedStr(fecha)) and ('HORA = ' + QuotedStr(hora)));

Me da error
Muchas gracias

Última edición por Sayuri fecha: 29-11-2005 a las 13:06:37.
Responder Con Cita
  #2  
Antiguo 29-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Que error te da?
Código Delphi [-]
Tabla.Filter:='FECHA = '+QuotedStr(fecha)+' and HORA = '+QuotedStr(hora);
Se debe tener cuidado en el manejo de las fechas, por la configuracion regional de tu maquina y la de tu base de datos.
Nt: vi que intentaste usar las etiquetas con <> pero deben ser con [] (corchetes), edita tu mensaje y prueba
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
Muchas gracias, ya lo edité

Me da este error:

Cita:
Operator not applicable to this operand type
Se me olvidaba decir que los campos de la fecha y la hora son dos string

Última edición por Sayuri fecha: 29-11-2005 a las 13:10:45.
Responder Con Cita
  #4  
Antiguo 29-11-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si fecha es de tipo fecha, tendrás que convertirlo antes de aplicarle el QuotedSTr.
Código Delphi [-]
 QuotedStr(FormatDateTime('dd/mm/yyyy',fecha))

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 29-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludps

La propiedad Filter es de tipo String y no se puede hacer un and. El "and" tiene que estar dentro de la cadena.

Prueba con
Código Delphi [-]
tabla.Filter:=Format('(Fecha = %s) and (Hora = %s)', 
            [QuotedStr(fecha),QuotedStr(hora)]);
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 29-11-2005 a las 13:20:16.
Responder Con Cita
  #6  
Antiguo 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
y como puedo comparar las horas si lo que comparo es un string?El problema es que necesito coger la fecha y hora iguales o mayores que la fecha y hora que introduzca. Además como estoy usando dBase, la fecha está en formato date pero la hora está introducida como un string

Última edición por Sayuri fecha: 29-11-2005 a las 13:23:57.
Responder Con Cita
  #7  
Antiguo 29-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Solo estaba haciendo una aclaratoria, ya que error que da es por el operador AND, aun no entiendo el por que del error.

Has hecho lo que MarcosZorrila ha escrito???
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #8  
Antiguo 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
si lo he hecho, pero me da error a la comparación, sin eso no me da error pero en el filtro no me da nada porque como la hora es con minutos y segundos es imposible que haya algo con esa misma hora y si quiero coger todo lo que se hace ocn posterioridad a esa hora (por si no me has entendido, la hora la capto del sistema) como en la tabla está guardado como un string... pues no sé como compararla para que me escoja las horas con posterioridad a la que yo he introducido.

Muchas gracias
Responder Con Cita
  #9  
Antiguo 29-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Dejame entender algo, los compos Fecha y Hora de tu tabla son de tipo String??? o no?

Bueno, yo probaria hacer el filtro en tiempo de diseño, aver como saldria y de ahi partiria o hacerlo con sentencias.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #10  
Antiguo 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
la fecha no, la fecha es de tipo date, pero la hora si, es que estoy usando dBase y sólo me permite introducir la fecha como fecha pero no la hora

Gracias por ayudarme
Responder Con Cita
  #11  
Antiguo 29-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

eeeh
Código Delphi [-]
var
  vFecha,vHora:String:
begin
  vFecha:=FormatDateTime('dd/mm/yyyy',MonthCalendar.date);//Componente Month Calendar
//el formato lo puedes cambiar a dd/mm/yyyy o mm/dd/yyyy
  VHora:='09:15:20';//cualquier hora....

tabla.Filter:=Format('(Fecha = %s) and (Hora = %s)', 
[QuotedStr(VFecha), QuotedStr(VHora)]);
Suerte

Cualquier error, hazlo saber
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #12  
Antiguo 29-11-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 19
Sayuri Va por buen camino
Muchas gracias

Ya encontré mi error,... la verdad es que es un poco tonto, pero ahí va:

al pasar la hora del sistema a un string usé DatetoStr... y no TimetoStr... entonces claro en la comparación me cogía la fecha en vez de la hora y por eso nunca salía nada

siento ser tan despistada.

Muchísimas gracias

Última edición por Sayuri fecha: 29-11-2005 a las 14:30:05. Razón: Equivocación
Responder Con Cita
  #13  
Antiguo 10-10-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
BUENO MI PROBLEMA ES QUE QUIERO IR FILTRANDO LA FECHA A MEDIDA QUE VA ESCRIBIENDO EN EL EDIT PRBOE CON ESTO EN EL EVENTO ON CHANGE DEL TEDIT:

Table1.Filter:='fecha= '+quotedstr(Edit2.text+'*');
Table1.Filtered:= True;

PERO ME DA ERROR= CUANO QUIERO INGRESAR EL DIA 9, ME DICE 9* IS NOT A VALID DATE VALUE , HABRA Q HACER UNA CONVERSION ANTES O DESPUES DEL QUOTEDSTR? GRACIASLA
LA IDEA ES QUE VALLA FILTRANDO A MEDIDA Q ESCRIBE DD/MM/AA
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 11:30:28.


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