Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Problema De Consulta Con Like

Hola Amigos, tengo un pequeño problema, a ver si podeis ayudarme.

Resulta que en un programa con Delphi 5 y tablas Paradox, intento hacer una consulta SQL con LIKE, y unas veces me funciona y otras no y no se porque.

Si utilizo esta consulta:

Código Delphi [-]
select * from ":GRUPOEMPRESA:AMIGOS.DB"
where APELLIDOS like '%'+'NAVARRO'+'%'
order by FPRESENTACION desc

En teoria deberia mostrarme todos los registros que contengan en el campo APELLIDOS el valor NAVARRO, pues no, hay algunos registros que no salen.

Sin embargo si utilizo esta consulta:

Código Delphi [-]
select * from ":GRUPOEMPRESA:AMIGOS.DB"
where APELLIDOS = 'NAVARRO RUIZ''
order by FPRESENTACION desc

Si me aparece el registro que antes no me aparecia. Que estoy haciendo mal en la primera consulta?

Muchas Gracias por anticipado. Un Saludo.
Responder Con Cita
  #2  
Antiguo 25-09-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Te pongo un ejemplo que usa la tabla employee que viene con Delphi:
Código Delphi [-]
procedure TForm1.btnBuscarClick(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM EMPLOYEE WHERE LastName LIKE :PARAM';
  Query1.ParamByName('PARAM').AsString := '%' + Edit1.Text + '%' ;
  Query1.Open;
end;

Muestra:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 26-09-2017
lupinfree lupinfree is offline
Registrado
 
Registrado: mar 2007
Posts: 5
Poder: 0
lupinfree Va por buen camino
Hola, puede ser que los % estan mal puestos. Deberia ser '%Navar%'
y mostraria todos los apellidos que tengan la cadena Navar es decir por ejemplo Navarro Navarrete Nava.... y tambien y aqui invento palabras para ser especifico conNavar ConNavarion estoNavarrito casiNavaral es decir todas las palarbras que tengan la forma ...Navar... .
Responder Con Cita
  #4  
Antiguo 27-09-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Gracias por contestar.

Aclaro, el problema es que cuando uso like (en el primer ejemplo) solo me muestra unos cuantos registros que cumplen la condicion, lo que pasa es que hay otro registro que en teoria cumple la condicion pero no lo muestra. Entonces no se por que unos si los muestra y otros no.

Yo siempre he usado esto y no me habia dado ningun problema.

He probado usando El parametro pero se comporta igual.

Hay algo que no se que provoca el error. A ver si se os ocurre algo porque estoy desesperado. He probado con acentos y sin acentos y hace lo mismo.

Muchas gracias de antemano. Quedo a la espera.
Responder Con Cita
  #5  
Antiguo 27-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues tendrás que decirnos qué datos son esos, porque no somos adivinos.
Responder Con Cita
  #6  
Antiguo 27-09-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Pues por ejemplo, intento buscar los registros que tienen en el campo nombre 'DARÍO', y cuando ejecuto la consulta me devuelve tres registros que cumplen la condicion pero hay un cuarto que tambien la cumple pero no me lo devuelve.

Si realizo la consulta en el campo apellidos, introduzco 'NAVARRO' y me devuelve dos registros y sin embargo hay tres que cumplen esa condicion.

Gracias de nuevo por el interes
Responder Con Cita
  #7  
Antiguo 27-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Eso no es información para que podamos ayudarte
Responder Con Cita
  #8  
Antiguo 27-09-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Dime que necesitas y lo pongo con gusto. Al principio he puesto como realizo la consulta, por si tenia algun error, es que no se que informacion mas poner para que me podais ayudar.
Responder Con Cita
  #9  
Antiguo 27-09-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Espartaco Ver Mensaje
Pues por ejemplo, intento buscar los registros que tienen en el campo nombre 'DARÍO', y cuando ejecuto la consulta me devuelve tres registros que cumplen la condicion pero hay un cuarto que tambien la cumple pero no me lo devuelve.

Si realizo la consulta en el campo apellidos, introduzco 'NAVARRO' y me devuelve dos registros y sin embargo hay tres que cumplen esa condicion.
Lo que tienes que poner para que podamos ayudarte es el contenido de los registros que sí te devuelve y los que no.

LineComment Saludos
Responder Con Cita
  #10  
Antiguo 27-09-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Pues por ejemplo si busco el nombre DARÍO me muestra

DARÍO GÓMEZ SÁNCHEZ
ABEL DARÍO CAMPOS GUTIÉRREZ

y no me muestra

DARÍO NAVARRO SÁNCHEZ

Son dos campos distintos NOMBRE y APELLIDOS, creo que el resto de campos no hace falta porque son muchos, FECHANACIMIENTO, NOMBREDELPADRE, NOMBREDELAMADRE, DOMICILIO, ETC..

Si los necesitais os los pongo, sin problema.
Responder Con Cita
  #11  
Antiguo 28-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero tú estás buscando por apellido:
Código SQL [-]
where APELLIDOS like
No puedes encontrar el campo nombre si no lo buscas.

En todo caso, añádelo a la búsqueda:
Código Delphi [-]
Query1.Close;
Query1.SQL.Text := 'select * from tbAmigos where (nombre like :Param1') or (apellidos like :Param2);
Query1.ParamByName('param1').AsString := '%' + Edit1.Text + '%' ;
Query1.ParamByName('param2').AsString := '%' + Edit1.Text + '%' ;    // No sé si es necesario repetirlo, ya que son iguales. Desconozco paradox.
Query1.Open;
Prueba con el código que ha puesto ecfisa.
Responder Con Cita
  #12  
Antiguo 02-10-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Hola Casimirio, gracias por contestar. A ver creo que no me he explicado bien. Al decir en el mensaje anterior lo de Nombre y Apellidos era para que supierais que son campos diferentes nada mas.

He probado el consejo de ecfisa y la respuesta al abrir la consulta es igual que la que me devuelve la que he puesto al principio del hilo.

Resulta que cuando intento buscar unos registros que cumplan con la condicion que he puesto en el ejemplo, no me devuelve todos los registros que la cumplen, ese es el problema. Da lo mismo si busco por el campo NOMBRE que por el campo APELLIDOS, en ambos casos se comporta como he dicho, es decir no me muestra todos los registros que cumplen con la condicion, y no se por que, ya que esto llevo años utilizandolo y nunca he tenido problema con esto, pero ahora resulta que me falla y no se por que. No se si esto le ha ocurrido a alguien alguna vez. La tabla es una tabla PARADOX, que no tiene nada especial, los campos son bastante comunes, por lo tanto no creo que tenga nada que ver su estructura.

En el ejemplo anterior, que he puesto que buscaba por el campo NOMBRE todos los registros que incluyeran el nombre 'DARIO', cuando realizo la consulta, me devuelve dos registros, y sin embargo hay tres registros que en el campo NOMBRE incluyen la palabra 'DARIO'. Ese es el fallo que no soy capaz de resolver.

Espero haberme explicado mejor ahora. Gracias por atenderme y quedo a la espera de alguna opinion.
Responder Con Cita
  #13  
Antiguo 02-10-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que no podemos probar tus datos porque no los tenemos, al igual que tampoco tenemos tu código. Pero lo que sí podemos asegurar es que si en el campo nombre hay 3 registros "DARIO" si haces un select por "DARIO" devolverá los 3 registros. Si uno de ellos no lo devuelve es porque no pone "DARIO", lo mismo pone "DARI0", "DARlO", etc. (un cero, una ele, etc.)
Responder Con Cita
  #14  
Antiguo 22-01-2018
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Hola amigos, comentaros que ya solucione el problema.

El problema estaba en la tabla. En realidad no se que le pasaba, sin embargo copie todos los registros en una nueva con la misma estructura y ya se soluciono el problema.

Lo pongo por si a alguien le puede servir, ya que me ha vuelto loco durante mucho tiempo.

Muchas gracias por vuestra ayuda. Sois los mejores.

Un saludo a todos.
Responder Con Cita
  #15  
Antiguo 23-01-2018
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 280
Poder: 8
manelb Va por buen camino
Cuando tenemos una incidencia con tablas paradox lo primero que hacemos es reparar tablas con una estupenda herramienta llamada sysutils
Errores extraños, consultas que no devuelven los registros esperados..., la mayoría de las veces se soluciona.

Saludos
Responder Con Cita
Respuesta


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 en consulta metroyd MySQL 2 09-03-2008 20:35:58
Problema consulta con AS zvf SQL 6 23-06-2007 02:34:41
Problema con Consulta Tolón SQL 5 30-01-2007 00:52:19
Problema con consulta PaLaSaca Conexión con bases de datos 4 23-04-2004 01:12:25
problema con consulta. jsanchez SQL 2 20-05-2003 20:35:55


La franja horaria es GMT +2. Ahora son las 23:49:12.


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