| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Sab 29 Ene, 2005 9:22 pm Asunto: like |
|
|
Hola,
Para Builder 6 y Access.
En una consulta SQL, si quiero filtrarla para que busque un valor hago lo siguiente:
| Código: |
// ...
qryPeliculas->SQL->Add("WHERE titulo LIKE '%"+ePeTitulo->Text+"%'");
// ...
|
Obvio la parte anterior y posterior del "where".
En esta consulta busco en el campo "titulo" que es tipo texto que lo tomo de un Edit.
Hasta aqui bien.
Pero cuando la consulta la realizo sobre un campo numerico, no me funciona.
He probado con:
| Código: |
// ...
qryPeliculas->SQL->Add("WHERE Anio LIKE "+eBPeAnio->Text.ToIntDef(0));
// ...
|
Donde Anio es de tipo numerico. Y le paso el valor en el edit eBPeAnio, pasado a entero. Pero no funciona, me saca todos los registros.
La pregunta es: ¿Como utilizar el comando LIKE para campos de tipo numerico?.
Un saludo y gracias de antemano. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Dom 30 Ene, 2005 1:26 am Asunto: |
|
|
Como que no me "cuadra" hace un like en un campo tipo año.
Por lo general sabes el "rango" el usuario lo sabe, hacer un like sobre un año te puede dar un numero infinito de valores. 19, 2000, 1980 ,1700 etc etc
En tu caso, peliculas, tal vez la busqueda deberia ser un poco mas compleja:
Si dedicas un campo para que el usuario teclee el año, el rango logico posible es desde 1900- a la fecha (suponiendo que el videoclub) tenga peliculas de principio de siglo (lo dudo).
Asi que la consulta deberia si es por año y un campo adicional para que el usuario teclee el rango
"select * from titulos where anio >= "+txtAnio->Text+" and anio <="+txtAnioFin->Text _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Dom 30 Ene, 2005 10:20 am Asunto: |
|
|
Hola Touchsoftwares,
Tienes toda la razon .
Gracias. |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Lun 31 Ene, 2005 5:21 pm Asunto: |
|
|
Hola Kalux.
Y aún diría más: LIKE funciona sólo con campos de tipo cadena, por lo que siempre tiene que ir lo que busques entre comillas simples. La sentencia
Select * from tabla where campo like 5
te debería dar un error o devolver 0 datos.
Lo correcto sería :
Select * from tabla where campo like '%cadena%'
como tienes en la primera sentencia de tu pregunta.
Espero que te sirva de ayuda. |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mie 02 Feb, 2005 9:50 pm Asunto: |
|
|
Gracias por vuestras respuestas, (la verdad es que practicamte estoy empezando con las bases de datos y estoy muy verde ).
Ese es el error que me pasaba, con texto no habia problemas y me buscaba correctamente. Pero al intentar buscar numeros es cuando no me buscaba nada (no me daba error, simplemente no encontraba nada).
Pero como aconsejo Touchsoftwares, pues no tenia sentido realizar esa busqueda. Ahora lo veo claro.
Gracias nuevamente y un saludo.  |
|
| Volver arriba |
|
 |
|