Consultas o busquedas TDataSet
Publicado: Sab Abr 21, 2018 4:16 pm
Me encuentro con un problemón al buscar o filtar en DataSets MariaDB.
dado un TEdit... ::oEdit1:cText
Carta de Oro
y al realizar la búsqueda aproximada...
::oDSTable:Locate( "DESCRIPCIO >= '" + " '" +::oEdit1:cText+ "'",, .F. )
localiza el primer registro que empieza por el texto solicitado correctamente...
O un filtro...
::oDSTable:Filter( "DESCRIPCIO LIKE '%" + Upper(::oEdit1:cText) + "%'",, .F. )
***********
PERO...
si el contenido del ::oEdit1:cText
Carte D'Or
lanzo el mismo Locate y no funciona, se queja y me lanza error.
Es por la comilla simple que hay en cText del oEdit1.
Puedo "saltar" este inconveniente cambiando las comillas simples por dobles i las dobles por simples...
::oDSTable:Locate( 'DESCRIPCIO >= "' + ' "' +::oEdit1:cText+ '"',, .F. )
O un filtro...
::oDSTable:Filter( 'DESCRIPCIO LIKE "%' + Upper(::oEdit1:cText) + '%"',, .F. )
***********
PERO el tema se complica si el texto del oEdit1 contiene comillas simples y dobles conjuntamente.
Carte d'Or serie "XL"
Dado ese posible caso... como lo hago???
Como lo haceis???
Como aplicar correctamente el Locate o Filter en un DataSet MariaDB???
Gracias.
dado un TEdit... ::oEdit1:cText
Carta de Oro
y al realizar la búsqueda aproximada...
::oDSTable:Locate( "DESCRIPCIO >= '" + " '" +::oEdit1:cText+ "'",, .F. )
localiza el primer registro que empieza por el texto solicitado correctamente...
O un filtro...
::oDSTable:Filter( "DESCRIPCIO LIKE '%" + Upper(::oEdit1:cText) + "%'",, .F. )
***********
PERO...
si el contenido del ::oEdit1:cText
Carte D'Or
lanzo el mismo Locate y no funciona, se queja y me lanza error.
Es por la comilla simple que hay en cText del oEdit1.
Puedo "saltar" este inconveniente cambiando las comillas simples por dobles i las dobles por simples...
::oDSTable:Locate( 'DESCRIPCIO >= "' + ' "' +::oEdit1:cText+ '"',, .F. )
O un filtro...
::oDSTable:Filter( 'DESCRIPCIO LIKE "%' + Upper(::oEdit1:cText) + '%"',, .F. )
***********
PERO el tema se complica si el texto del oEdit1 contiene comillas simples y dobles conjuntamente.
Carte d'Or serie "XL"
Dado ese posible caso... como lo hago???
Como lo haceis???
Como aplicar correctamente el Locate o Filter en un DataSet MariaDB???
Gracias.