Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 14-11-2012
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 23
jsc Va por buen camino
Cita:
Empezado por olbeup Ver Mensaje
Cual son los resultados no esperado, cual es la SQL que has escrito, los que dice ecfisa es correcto y no debes de tener ningún problema.

Da igual que el campo este en blanco o incluso sea nulo, cuando se cumpla uno de los OR te lo va a mostrar.

Un saludo
disculpad,
quiza no me explique del todo bien
probe lo que comentaba ecfisa y me funciono bien pero solo si encontraba una coincidencia. si hay varias coincidencias no me devuelve bien el resultado.
en el ejemplo que puse arriba:
Código:
edit1.text := '%jsc%' //valor de nombre
edit2.text := '%1%'//valor de direccion
y me devuelve
Código:
nombre direccion tlf1 tlf2
jsc1     direccion1
jsc2     direccion2
cuando yo lo que busco seria

Código:
nombre direccion tlf1 tlf2
jsc1     direccion1
yo lo que busco es que la consulta la haga en base a los parametros que se le pasa.
Código:
sql.add ('SELECT * FROM TABLA') ;
if s<>'todos'
  then
     begin
        sql.add (' where NOMBRE like :nomb AND DIRECCION like :direc AND TELEF1 like :tlf1 AND TELEF2 like :tlf2');
        parambyname ('nomb').asstring := '%'+edit1.Text+'%' ;
        parambyname ('direc').asstring := '%'+edit2.text+'%';
        parambyname ('tlf1').asstring := '%'+edit3.text+'%';
        parambyname ('tlf2').asstring := '%'+edit5.text+'%'
si edit1 (nombre) contiene datos, el valor de (l'nomb') sera edit1.text
si edit2 no contiene datos, entonces, el valor de ('direct') tendria que ser todo;
para ello se me ocurre hacerlo como en el ejemplo y pasar al parametro ('direc') que contenga cualquier valor
y con el resto de los edit lo mismo

sino otra alternativa que se me ocurre puede ser algo asi:
Código:
query1.sql.add ('SELECT * FROM TABLA')

if edit1.text <> '' 
then 
   begin
      parambyname('nomb').asstring := edit1.text
      sql.add (' and NOMBRE like :nomb)
   end;
if edit2.text <>''
then
...
de la manera que intento hacerlo, el codigo es menor y mas visual para resolver posibles errores futuros
busco una consulta concatenando varios parametros

se me ocurrio hacerlo de esta manera quiza no es la correcta?aunque si reemplazo como digo los blancos por algun texto funciona perfecto

Última edición por jsc fecha: 14-11-2012 a las 14:15:46.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
problema con una consulta leofuentes21 SQL 6 28-02-2011 16:04:27
problema con consulta sql gonza_619 Varios 6 22-07-2010 19:42:56
problema en consulta metroyd MySQL 2 09-03-2008 19:35:58
Problema con Consulta Tolón SQL 5 29-01-2007 23:52:19
problema con consulta. jsanchez SQL 2 20-05-2003 19:35:55


La franja horaria es GMT +2. Ahora son las 09:34:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi