PDA

Ver la Versión Completa : like '1*'


Novás
09-02-2004, 11:34:37
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...

javiermorales
09-02-2004, 12:00:38
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

javiermorales
09-02-2004, 12:03:26
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.

__cadetill
09-02-2004, 12:41:28
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í

sql := 'Select * from Productos where RefInterna like ' + QuotedStr(TxtPatron.Text + '%');


Con Parámetros quedaría algo así

Query.Sql.Text := 'Select * from Productos where RefInterna like :Texto';
Query.ParamByName('Texto').AsString := TxtPatron.Text + '%';

jpcancino
10-02-2004, 18:15:58
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 = '