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.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Aplicar filtro problema con comillas
-
- Mensajes: 9
- Registrado: Vie Jun 18, 2021 5:41 pm
Re: Aplicar filtro problema con comillas
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.
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.
-
- Mensajes: 9
- Registrado: Vie Jun 18, 2021 5:41 pm
Re: Aplicar filtro problema con comillas
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
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
-
- Mensajes: 9
- Registrado: Vie Jun 18, 2021 5:41 pm
Re: Aplicar filtro problema con comillas
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.
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.