Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Que tengo mal en mi sintaxis (https://www.clubdelphi.com/foros/showthread.php?t=13716)

kamikaz 28-08-2004 01:19:02

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.:confused:

roman 28-08-2004 01:21:49

¿No tendrías que usar OR en lugar de AND?

// Saludos

moesis 28-08-2004 02:16:04

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.


La franja horaria es GMT +2. Ahora son las 07:18:38.

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