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

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2009
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
buenas tardes....

tengo un problema en el programa que arme con la ayuda de ustedes,
no puedo hacer que me filtre x medico y a la vez por dia.
la sentencia que puse es la siguiente:

procedure TIngresoturnos.SpeedButton3Click(Sender: TObject);
begin

query1.active:=true;
query1.filter:= ComboBox1.TEXT + ' ='+ quotedstr(DBLookupComboBox1.TEXT + '*');
query1.filtered:=true;
dbgrid1.visible:=false;
dbgrid2.visible:=true;
QUERY1.filter:= 'FECHA=' + quotedstr(FORMATDATeTIME('dd/mm/yyyy',datetimepicker2.date));
end;
tendra alguna solucion gracias
  #2  
Antiguo 07-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola andres***,
Usa las etiquetas DELPHI por favor:

[ DELPHI ]
tu codigo aquí
[ /DELPHI ]

Sin los espacios entre los corchetes.

Respecto a tu duda,
Sólo veo que haces un segundo filtro pero no indicas que lo aplique mediante Filtered.
Fuera de eso no veo error.
Si te da un error debes indicárnoslo. No basta con tirarnos el código y que adivinemos. Coméntanos más al respecto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #3  
Antiguo 07-01-2009
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
hola Delphius

el problema es el siguiente:
mi base posee turnos
ej

paciente fecha hora medico
xxx 10/01/09 11:45 spatola
dsd 10/01/09 12:25 rames
yty 10/01/09 11:25 spatola

cuando yo filtro con la sentencia que te detalle en el mensaje anterior , yo pretendo que cuando me filtre, me devuelva el detalle de pacientes que tiene un determinado medico, un determinado dia

por ejemplo yo filtro el medico spatola y el dia 10/01/09 y me tendria que quedar.

paciente fecha hora medico
yty 10/01/09 11:25 spatola
xxx 10/01/09 11:45 spatola

el tema es que me filtra por dia y no por medico.....
  #4  
Antiguo 07-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
No es por nada pero volvemos a un dilema que inicialmente te habíamos comentado: ¡tienes la fecha y la hora en campos separados!

Hay dos opciones:
1. Emplear un campo fecha y hora o DateTime en que incluyas la fecha y la hora. De este modo tu condición de filtrado será muy simple:

Código Delphi [-]
Query1.Filter := 'TU_CAMPO = ' + Quoted(....);

Tal como lo estás pretendiendo hacer.

2. O bien, seguir manteniendo los campos por separado y hacer una condición compuesta. Algo como:

Código SQL [-]
(FECHA =  07/01/2009) AND (HORA = 10:20)

Es decir que bastaría con añadir a tu filtro un AND y la siguiente condición: por hora.

¿Se entiende?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #5  
Antiguo 07-01-2009
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
Delphius

en la primera yo cargaria la fecha y la hora en un mismo campo?

y la segunda

vos decis que ponga la condicion de filtrado por medico y la de por hora con and en el medio.
  #6  
Antiguo 08-01-2009
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
por favor alguien que me ayude con esto.


gracias
  #7  
Antiguo 08-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola andres***,
Disculpame no había visto que ya habías comentado al respecto.

A ver si me explico: Si tu tuvieras en un mismo campo registrado la fecha Y hora se puede emplear el código que tu comentas. Puesto que bastaría una simple condición para filtrar los datos.

Pero como empleas dos campos: uno para la fecha y otro para el día, (supongo que será del tipo Date y Time respectivamente) necesariamente debes armar una doble condición:
Código Delphi [-]
Query1.Filter := '(CAMPO_FECHA = ' + Quoted(...) + ') AND (CAMPO_HORA = ' + Quoted(...) + ')';

Ahora bien, este código es un tanto lioso. Lo más confiable y rápido es lanzar directamente la consulta con los datos a filtrar:
Código SQL [-]
select TUS_CAMPOS
from TU_TABLA
where (Fecha = :FechaParam) AND (Hora = :HoraParam)

Y valiendote de parámetros luego puedes hacer esto:
Código Delphi [-]
Query1.Params.ParamByName(FechaParam).AsDate := ....
Query1.Params.ParamByName(HoraParam).AsTime := ....
Query1.Open;

Por el tema de parámetros sugiero una búsqueda en los foros sobre el tema. Fue ampliamente tratado.

Y si a dichos campos lo "tansforma" a uno solo, de tipo fecha/hora igual puedes seguir lanzando una SQL igual a la anterior, pero esta vez, con una sola condición:

Código SQL [-]
where (FechaHora = :FechaHoraParam)

Y en Delphi, antes de lanzar algo como:

Código Delphi [-]
Query1.Params.ParamByName(FechaHoraParam).AsDateTime := ....

¿Me explico?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Tema Cerrado



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
Ordenar datos en un StringGrid gilberto_1126 Varios 2 22-12-2010 18:34:29
Ordenar datos en IBDataSet niñotaliban Varios 3 07-04-2007 14:03:06
Ordenar datos en un DBGrid jona-182 Conexión con bases de datos 3 30-03-2007 21:43:06
Ordenar tabla (base de datos) talos C++ Builder 3 10-02-2006 00:26:21
Ordenar conjunto de datos Osorio Firebird e Interbase 1 15-10-2003 07:56:42


La franja horaria es GMT +2. Ahora son las 12:43:02.


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