Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2004
maurogambo maurogambo is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Poder: 0
maurogambo Va por buen camino
Unhappy Operador LIKE en access

Tengo un problema con la siguiente consulta SQL, (utilizo el Motor Jet 4.0 como proveedor, access XP, Delphi 6):

SQL := SELECT * FROM Usuarios WHERE Nombre LIKE 'carlos*';

en DELPHI esa consulta no arroja ningún resultado, es decir, cero registros, aunque tenga varios campos donde aparece ''CARLOS PEREZ, 'CARLOS ALBERTO'... sin embargo, si uno en uno de los campos aparece 'CARLOS*' este si lo refleja en los resultados.

en MS ACCESS la misma consulta devuelve todos los campos donde se tenga CARLOS (como debería ser)

AGRADECERÍA CUALQUIER AYUDA.
Responder Con Cita
  #2  
Antiguo 04-07-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Debes usar % como caracter comodin, no *.

Saludos
Miguel.
Responder Con Cita
  #3  
Antiguo 04-07-2004
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
Efectivamente es como te dice Mick. Aquí tienes un ejemplo que acabo de probar y funciona sin problemas.
Código SQL [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('Select * From video Where masculino like ''K%''');
AdoQuery1.Open;
end;
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
  #4  
Antiguo 06-09-2006
moNTeZIon moNTeZIon is offline
Registrado
 
Registrado: sep 2006
Posts: 2
Poder: 0
moNTeZIon Va por buen camino
Seguro?

Hola gente,
Esque luego de volverme loco y encontrar donde estaba la cuestión, vi este mensaje y me dolió tanto que me tuve que registrar y aclarar algo...
De verdad han probado eso? Este símbolo "%" no funciona desde Access utilizado con el operador LIKE. Desde Access deben utilizar "*" como hace nuestro amigo.
Si no pruebenlo.
Aclaro que esto es así con Access 2003, quizá no con otras versiones, pero me atrevería a jurar que si...

1. Crear registro con valor "pepe".
2. Crear consulta probando: SELECT * FROM tabla WHERE campo LIKE '%pepe%'
3. Comprobar resultado (no sale nada!)
4. Crear consulta probando: SELECT * FROM tabla WHERE campo LIKE '*pepe*'
5. Comprobar resultado (sale nuestro registro!)

IMPORTANTE: Cuando digo "desde" Access quiere decir intentando crear una consulta desde dentro del propio Access para hacer la prueba.

Lo que me volvió majara fue, una vez conseguida la sentencia que funcionaba desde Access, me la llevé para el Visual Studio, para mandarla desde una ejecución SQL, pero sorpresa la mía cuando veo que desde mi aplicación no me devuelve ningún registro.
Entonces es cuando me da por probar "una vez más" el símbolo "%" en vez de "*" desde mi aplicación, y si me devuelve los registros, como bien dicen ustedes...

La conclusión a la que he llegado es super ilógica:
- Creando una consulta desde la propia BD el LIKE funciona con "*" y no con "%"
- En cambio mandando la SQL desde la aplicación a la misma BD, hay que mandar el LIKE con el simbolo "%" y no con "*"

Increíble pero cierto.
Si alguien tiene una explicación, genial!

Un saludo gente!

Última edición por moNTeZIon fecha: 06-09-2006 a las 11:41:02.
Responder Con Cita
  #5  
Antiguo 06-09-2006
Josemarg Josemarg is offline
Registrado
 
Registrado: dic 2005
Posts: 5
Poder: 0
Josemarg Va por buen camino
Increible pero totalmente cierto, a mi me pasa exactamente lo mismo. He perdido mucho tiempo dandole vueltas a este tema.
Responder Con Cita
  #6  
Antiguo 06-09-2006
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
Es que una cosa es atacar el SQL de Access desde el propio Access con el asistente gráfico para construcción de consultas y otra desde Delphi.

El comodín para Access como ya se ha dicho es el asterisco (*)

Y desde SQL el símbolo de porcentaje (%).

Aunque como se ha explicado más arriba, bastará con hacer un par de pruebas en caso de dudas, tiempo estimado 2 minutos.

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
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 21:05:24.


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