Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2004
kamikaz kamikaz is offline
Registrado
 
Registrado: ago 2004
Posts: 2
Poder: 0
kamikaz Va por buen camino
Post Que tengo mal en mi sintaxis

Quiero hacer una consulta a un servidor MySql, pero mi consulta consta de paterno, materno y nombre y quiero que si pongo la primera letra del apellido me traega todos los que encuentre que coincidan aunque deje los otros 2 campos en blanco.

mi codigo que puse es el siguiente:

query.sql.add('select * from base where paterno like'+''''+'%'+paterno.text+'%'+''''+'and materno like+''''+'%'+materno.text+'%'+''''
+'and nombre like'+''''+'%'+nombre.text+'%'+'''');

Utilizo componentes zeos, para conectarme al servidor no creo que sea por eso???

Que esta mal en mi sintaxis, porque o no me trae nada o me marca un error.
Responder Con Cita
  #2  
Antiguo 28-08-2004
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
¿No tendrías que usar OR en lugar de AND?

// Saludos
Responder Con Cita
  #3  
Antiguo 28-08-2004
Avatar de moesis
moesis moesis is offline
Miembro
 
Registrado: jun 2004
Ubicación: Islas Canarias
Posts: 46
Poder: 0
moesis Va por buen camino
Saludos,

Roman tiene razón pero de todas maneras, puedes atender a una sugerencia, ante todo te recomendaría la siguiente práctica, usa una función que se llama QuotedStr () y de esa forma no te lias con las comillas de los strings. Mira la prueba.

Tu código...
Código Delphi [-]
 
query.sql.add('select * from base where paterno
 like'+''''+'%'+paterno.text+'%'+''''+'and materno 
like+''''+'%'+materno.text+'%'+''''
+'and nombre like'+''''+'%'+nombre.text+'%'+'''');

Ahora como yo te sugiero....
Código Delphi [-]
query.sql.add ('SELECT * FROM base where paterno like ' + 
QuotedStr ('%' + paterno.text + '%') + ' and materno like ' + 
QuotedStr ('%' + materno.text + '%') + ' and nombre like ' + 
QuotedStr ('%' + nombre.text + '%'));

y si quieres bordarlo, puedes almacenar la cadena de la consulta en una variable de tipo string sustituyendo los parámetros por %s y después aplicar lo siguiente

Código Delphi [-]
Consulta := 'SELECT * FROM base where paterno like %s and 
materno like %s and nombre like %s';
query.sql.add (Format (Consulta, [QuotedStr ('%' + paterno.text + '%'),
QuotedStr ('%' + materno.text + '%'), 
QuotedStr ('%' + nombre.text + '%')]);

Con lo que mantienes una claridad de código, y si quieres ver como queda la consulta te remito al siguiente hilo
http://www.clubdelphi.com/foros/show...&highlight=Sql
donde hay una mágnifica función de Tino que puede servirte de ayuda en estos procesos.

Espero haberte ayudado.
__________________
ø¤º° Moesis °º¤ø
Dios nos ha dado dos orejas y una boca para escuchar el doble de lo que hablamos.
Consulta la Guía de Estilo.

Última edición por moesis fecha: 28-08-2004 a las 03:19:26.
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 01:59:34.


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