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
  #21  
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]
  #22  
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.....
  #23  
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]
  #24  
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.
  #25  
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
  #26  
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]
  #27  
Antiguo 22-11-2011
carlosjimenez carlosjimenez is offline
Miembro
 
Registrado: ene 2010
Posts: 19
Poder: 0
carlosjimenez Va por buen camino
no abre el qry

Saludo a todos, tengo un qry que no me da el open(no abre) solo cuando utilizo SQLSERVER, si utilizo otra base de datos funciona bien, he hecho varia prueba y he podido comprobar que es debido al order by de los campos que estoy solicitando, si le pongo un solo(el codigo del articulo) el qry abre pero solo con ese, si le pongo otro no abre o si lo convino con otros, es solo con ese campo que abre.

Me explico sino le pongo el orden by el qry abre bien, si le dejo el order by con un campo que no sea el codigo del articulo no abre

este es el qry

with FDataModulo.qryUtility2, Sql do
begin
Close;
Clear;
Add('select cia.cia_descripcion,cia.cia_rnc,'+
'loc.loc_descripcion,tid.cia_codigo,tid.dti_fecha,tid.dti_item,tid.alm_codigo,'+
'tid.art_codigo,loc.loc_direccion,loc.loc_telefono,'+
'loc.loc_fax,art.id,tri.tri_fecha,tri.tri_codigo,'+
'tdo.tdo_descripcion,tdo.tdo_entrada_salida');
Add(' from companias cia, localidades loc, transacciones_inv tri, tipos_documentos tdo,');
Add(' transacciones_inventario tid,articulos art');
Add(' where cia.cia_codigo = '+#39+gs_cia_codigo+#39);
Add(' and loc.cia_codigo = cia.cia_codigo');
Add(' and tri.cia_codigo = loc.cia_codigo');
Add(' and tri.loc_codigo = loc.loc_codigo');
Add(' and tri.alm_codigo = ''01''');
Add(' and tid.art_codigo = '+#39+articulo+#39);
Add(' and tri.tri_estado <> ''R''');
Add(' and tdo.cia_codigo = tri.cia_codigo');
Add(' and tdo.tdo_codigo = tri.tdo_codigo');
Add(' and tid.cia_codigo = tri.cia_codigo');
Add(' and tid.loc_codigo = tri.loc_codigo');
Add(' and tid.tdo_codigo = tri.tdo_codigo');
Add(' and tid.tri_codigo = tri.tri_codigo');
Add(' and art.cia_codigo = tid.cia_codigo');
Add(' and art.tpi_codigo = tid.tpi_codigo');
Add(' and art.art_codigo = tid.art_codigo');
Add(' order by tid.dti_fecha'); // si le pongo el campo fecha no abre solo con el campo codigo de articulo no toma otro.
Open;

este es el orde del qry que quiero, este orden me funciona bien en otras base de datos menos en SLQSERVER
Add(' order by tid.art_codigo,tri.tri_fecha,tri.tri_codigo');

Gracias de antemano
  #28  
Antiguo 22-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
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 05:44:39.


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