Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

like

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: like Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Hola Touchsoftwares,

Tienes toda la razon Embarassed Embarassed .

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por vuestras respuestas, (la verdad es que practicamte estoy empezando con las bases de datos y estoy muy verde Embarassed ).

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. Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.