![]() |
like '1*'
Hola a todos los forista:
Vereis, estoy trabajando con una base de datos Access y accedo a ella mediante BDE. Cuanto intento ejecutar una consulta como la siguiente: sql:='Select * from Productos where RefInterna like ' + '''' + TxtPatron.Text + '*' +''''; para un valor 1 en TxtPatron.Text no saca ningún valor mientras q en la base de datos hay registros q empiecen por 1. ¿A qué puede ser debido? Muchas gracias... |
Te lo digo de memoria, pero que recuerde debes poner la comilla simple y encerrada entre comillas simples.
sql:='Select * from Productos where RefInterna like ''' + TxtPatron.Text + '*''' Ten en cuenta que son siempre comillas simples, aunque no recuerdo si son 3 ó 4 comillas lo que hay que poner. sql:='Select * from Productos where RefInterna like '''' + TxtPatron.Text + '*'''' Un saludo |
De todas maneras si no te dá ningún mensaje de error de sintaxis con lo que hacías, puede que se resuelva utilizando en lugar de * el %, recuerdo que en algún momento me encontré con un problema parecido.
|
Solo añadir que, las comillas son 3 o 4 dependiendo de como se haga. Es decir, si lo haces como propone Novás son 4, pero si lo haces como propone Javier son 3. No obtante, para no liarse yo prefiero utilizar el QuotedStr o parámetros en la Query
Con QuotedStr quedaría algo así Código:
sql := 'Select * from Productos where RefInterna like ' + QuotedStr(TxtPatron.Text + '%');Código:
Query.Sql.Text := 'Select * from Productos where RefInterna like :Texto'; |
yo en vez de tanta comilla uso #39.
osea algo asi: sql:='SELECT * FROM TABLA WHERE NOMBRE='+#39+EDIT1.TEXT+#39; o en tu caso: sql:='Select * from Productos where RefInterna like '+#39+ TxtPatron.Text +'%'+#39; y es menos compicado en caso de que se te pierda una comilla :) Saludos PD: en codigo ascii #39 = ' |
| La franja horaria es GMT +2. Ahora son las 10:07:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi