FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Puede un espacio dar error en una consulta
Holas
Buenas yo utilizo D5 con tablas Paradox's y Tquery's. Mi pregunta es, puede un espacio en un campo de una tabla hacer trabajar mal a una consulta? Me explico, si al introducir los datos en un campo al final el usuario le da un espacio sin querer, tiene que obligatoriamente la consulta llevar este espacio para trabajar bien. eje. si el campo es Apellido:'Morel_' y el usuario lo escribe con ese espacio sin querer. La consulta para que me devueva exactamente este cliente tiene que tener el espacio. Select nombre,apellido,direccion from clientes where apellido='Morel_' y no Select nombre,apellido,direccion from clientes where apellido='Morel' Si esto es cierto existe alguna forma de que la consulta ignore estos espacios que el cliente introduce involuntariamente. Gracias a todos por sus atenciones Bey Bey
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan. Sr. Genny Cris Morillo Santos Estudiante ING. Sistemas Santo Domingo D.N. |
#2
|
|||
|
|||
Pues SI que te dara problemas
Para solucionarlo, existe la funcion Trim Sacado de la ayuda del LocalSQL.hlp Cita:
|
#3
|
||||
|
||||
Otra cosa que puedes hacer es sustituir tu SQL, por la siguiente:
Select nombre,apellido,direccion from clientes where apellido like '*Morel*' o Select nombre,apellido,direccion from clientes where apellido like '%Morel%' Esto te daría todos los apellidos que contienen la palabra Morel. Dependiendo del motor de BD puede ser que los caracteres comodines se vean modificados, ya que pueden representar un único carácter (%) o cualquier número de caracteres (*) y puedes jugar con ellos. Espero que te sirva. Un saludo. |
#4
|
|||
|
|||
Cita:
Lo del Trim lo decia por si SOLO quiere conseguir ese nombre (o apellido o lo que el quiera) |
#5
|
||||
|
||||
Tanto el LIKE como el TRIM y/o LTRIM, RTRIM... Son las soluciones más comunes a este problema, pero quiero agregar algo: Si esta tabla es o será muy grande, seguramente vas a crear un índice por el campo apellido para acelerar la búsqueda, si es una búsqueda común, el tema es que si tu haces un LIKE que no tenga solamente un comodín a la derecha o utilizas funciones como el TRIM / UPPERCASE u otra función que altere dinámicamente el valor de los campos, tu consulta no utilizará el índice, a no ser que utilices índices de funciones, como soportan algunos motores.
Es solo un comentario, pero es importante a la hora de diseñar un sistema normalizar tanto la estructura de datos como los datos.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|