Página 1 de 1
Aplicar filtro problema con comillas
Publicado: Sab Ago 28, 2021 12:41 pm
por emilio.gil
Hola a todos:
Aplico un filtro al DataSet
cSetFilter := 'nombre_modelo = "' + ::oTestigo_filtro + '"'
::oArticulos:SetFilter(cSetFilter)
Si el campo ::oTestigo_filtro contiene comillas simples no hay ningún problema y aplica el filtro correctamente. El problema lo tengo cuando dicho campo contiene al mismo tiempo comillas simples y dobles.
¿Alguien conoce algún modo de evitar este problema?
Anticipadamente gracias,
Emilio Gil.
Re: Aplicar filtro problema con comillas
Publicado: Mar Ago 31, 2021 12:22 pm
por jfgimenez
Emilio,
puedes "escapar" la cadena del filtro, usando el método StrSql() del datasource correspondiente. P.ej: cSetFilter := "nombre_modelo = '" + oDB:StrSql( ::oTestigo_filtro ) + "'"
Lo normal es usar las comillas dobles para tus cadenas, y las comillas simples para las expresiones en SQL, que son las que reconocen todos los motores.
Re: Aplicar filtro problema con comillas
Publicado: Mar Ago 31, 2021 8:13 pm
por emilio.gil
Hola Jose:
Muchas gracias por tu respuesta, pero no sabría a qué DataSource aplicarlo, supongo que al mismo que pretendo filtrar (en mi ejemplo ::oArticulos ?)
cSetFilter := "nombre_modelo = '" + oArticulos:StrSql( ::oTestigo_filtro ) + "'"
::oArticulos:SetFilter(cSetFilter)
Así, desde luego no funciona y provoca el siguiente error
TSQLQUERY:STRSQL(1615)
Error BASE/1004 Message or field name not found: TSQLQuery:STRSQL
Argumentos: ( [ 1] = Tipo: C Valor: APRILIA RS 50 '99/'05)
ya que no existe ningún método llamado StrSql para el DataSource
Saludos
Re: Aplicar filtro problema con comillas
Publicado: Mar Ago 31, 2021 9:10 pm
por emilio.gil
Hola Jose:
Rectifico lo dicho, había confundido el DataSource con el TSqlQuery, y aplicando el método StrSql, en mi caso al tMariaDbDatasource, funciona perfectamente. Bien es cierto que dicho método no aparece documentado en la ayuda de Xailer.
Saludos y muchas gracias por todo.