![]() |
like no funciona !
Hola gente del foro, estoy desarrollando una aplicación en delphi6 con una DB access '97, en un query pongo una consulta de estre tipo:
SELECT RAZ_CLI,CUI_CLI FROM "D:\DATABASE\CLIENTES.DBF" WHERE RAZ_CLI like :Razon y solo devuelve resultado si Razon es exactamente igual a RAZ_CLI, funciona como si el operador fuera =, aclaro que el parámetro se lo paso con un * al final de la cadena desde ya gracias |
Prueba con % (es el signo de porcentaje).
Un Saludo. |
HOLA..
como pasas el parametro? desde un Edit? si es asi prueba esto with miQuery do Begin Close; // cierras el query with sql do //Propiedad SQL del Query begin Clear; //Limpias El Query y añades la Sentencia SQL add('SELECT RAZ_CLI,CUI_CLI'); add('FROM "D:\DATABASE\CLIENTES.DBF"'); add('WHERE RAZ_CLI like' +#39+'%'+edit1.text+#39+'%'); End; Open; //Abres El query End; espero y te sirva..... |
Cita:
Algo similar a eso: Código:
add('WHERE RAZ_CLI LIKE' + QuotedStr(Edit1.text + '%')); |
:p cierto delphi.ar la ultima linea del add esta al reves
esta es la linea correcta.... add('WHERE RAZ_CLI like' +#39+'%'+edit1.text+'%'+#39); aunque no habia visto esa variable QuotedStr.... Voy a investigar a ver que hace..... |
Cita:
Saludos |
gracias Delphi....
De todos modos ya he visto la ayuda de delphi.... Voy a tener que darle mas a F1 :D |
Solo aportar un pequeño detalle. Es aconsejable evitar en la medida de lo posible montar el SQL al vuelo. En vez de ello es mejor declarar parametros (tal y como se apuntaba en el primer mensaje) y después asignarles el valor deseado. Creo que es mejor esta técnica por cuatro razones:
1.- Evita agujeros de seguridad mediante ataques de SQL Injection 2.- Si trabajamos con un SGBD decente, la query quedará preparada en el servidor, con lo que si se tiene que ejecutar más de una vez, aunque cambien los parametros, su velocidad será mucho mayor. 3.- A mi juicio el código queda mucho más legible. 4.- La VCL se encarga de escapar aquellos caracteres "extraños" (', ", \, ;, ...) que pueda introducir el usuario. En el caso que se expone, yo dejaria el código SQL tal y como ha indicado dmasson al principio. En el evento que tiene que abrir la consulta, pondría el siguiente código: Código:
Query1.Close; |
Funcionó !
Gracias a todos !, funcionaron todas las opciones
saludos |
Cita:
PD: Yo también soy partidario de usar parámetros. ;) |
La franja horaria es GMT +2. Ahora son las 23:20:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi