Problema con TSqlQuery:Locate() conectado con un TAdoDatasource a Mysql
Publicado: Mié Abr 14, 2010 11:38 pm
Hola...
Estoy teniendo problemas con el método locate del TSqlQuery.
El problema surge al querer buscar (con el filtro ocurre lo mismo) aquellos
registros en donde un campo determinado comience con una cadena de
caracteres.
Por ej, en un campo QDES, los que comiencen con la cadena "MADE" (para
buscar maderas, por ej, pero no poniendo toda la cadena).
Suponiendo que tengo una variable oQuery que es del tipo TSqlQuery, pongo lo
siguiente
oQuery:Locate('Left(QDES,4)="MADE"')
Esto no funciona. Sólo funciona si se pone la expresión exacta.
oQuery:Locate('QDES="MADE"'), lo que, obviamente, no me sirve.
El locate da un error de DataControls, al utilizar Left, sin embargo si
pruebo ejecutar un select utilizando Left, funciona bien, es decir
Select * from tabla where Left(QDES,4)="MADE"
Me preocupa que esto no funcione con el filtro, porque es una función que
suelo utilizar muy a menudo cuando tengo un TDBbrowse (pretendo filtrarlo
desde el programa y no utilizando los autofiltros del TDBBrowse)
Si alguien sabe por que no funciona, agradecido ...
Estoy teniendo problemas con el método locate del TSqlQuery.
El problema surge al querer buscar (con el filtro ocurre lo mismo) aquellos
registros en donde un campo determinado comience con una cadena de
caracteres.
Por ej, en un campo QDES, los que comiencen con la cadena "MADE" (para
buscar maderas, por ej, pero no poniendo toda la cadena).
Suponiendo que tengo una variable oQuery que es del tipo TSqlQuery, pongo lo
siguiente
oQuery:Locate('Left(QDES,4)="MADE"')
Esto no funciona. Sólo funciona si se pone la expresión exacta.
oQuery:Locate('QDES="MADE"'), lo que, obviamente, no me sirve.
El locate da un error de DataControls, al utilizar Left, sin embargo si
pruebo ejecutar un select utilizando Left, funciona bien, es decir
Select * from tabla where Left(QDES,4)="MADE"
Me preocupa que esto no funcione con el filtro, porque es una función que
suelo utilizar muy a menudo cuando tengo un TDBbrowse (pretendo filtrarlo
desde el programa y no utilizando los autofiltros del TDBBrowse)
Si alguien sabe por que no funciona, agradecido ...