Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Expresión regular Access? (https://www.clubdelphi.com/foros/showthread.php?t=66536)

nena_yei 25-02-2010 08:26:29

Expresión regular Access?
 
Hola!

Aver si alguien me ayuda a solucionar mi problema. Yo normalmente trabajo con mysql, pero ahora tengo que hacer una aplicación en Delphi con Access y os cuento mi problema:

Necesito hacer una búsqueda de una palabra (la que ponga el usuario) peeeero el problema está que tiene que encontrar esa palabra aunque esté rodeada de signos de puntuación, es decir, por ejemplo:

Búsqueda: casa
Tiene que encontrar: 'casa' - casa. - ,casa, - casa, - ¿casa - ¡casa! - etc.
Pero NO tiene que encontrar: casados - casal - escasa - etc.

Entonces, yo había pensado en una expresión regular (REGEXP en Mysql) pero lo he puesto en la aplicación y me da error con el REGEXP, ya que no funciona con Access.

Alguien sabe como podría hacer esta consulta sql?? Estoy desesperada

Gracias de antemano! Un saludo!

Neftali [Germán.Estévez] 25-02-2010 10:35:51

Que yo sepa no puedes hacerlo en Access.
Deberás traerte los que cumplan %casa% y luego filtrar los de los operadores.

nena_yei 02-03-2010 11:19:08

Gracias Neftali,
pero tengo otra duda..he encontrado esto en access:

campo LIKE "%[!a-z]'+palabra+'[!a-z]%"


Esto te selecciona la palabra con cualquier carácter delante y detrás que no sea ninguna letra. Entonces..esto en Access (cambiando el % por *) funciona perfectamente! Pero cuando la consulta se ejecuta desde Delphi no me devuelve resultados! Como puede ser?! Alguien sabe si es que al igual q lo del %-* hay algún tipo de conversión para estos carácteres comodines?

Gracias de antemano!

Neftali [Germán.Estévez] 02-03-2010 12:02:33

Cita:

Empezado por nena_yei (Mensaje 355339)
Pero cuando la consulta se ejecuta desde Delphi no me devuelve resultados! Como puede ser?! Alguien sabe si es que al igual q lo del %-* hay algún tipo de conversión para estos carácteres comodines?


El problema es que Access no es una Base de Datos. Access es un programa que trabaja con los ficheros MDB del motor de Base de Datos Jet4.
Cuando desde Delphi se accede a los ficheros MDB (vía ADO, por ejemplo) se trabaja contra el motor Jet4 directamente.

Access como programa que trabaja con una Base de Datos provee una interface para trabajar con ella y posibilidades que no tiene el Motor. Por eso (y este es un ejemplo) muchas cosas que funcionan desde Access, luego no funcionan cuando "atacas" a los ficheros MDB desde fuera. Porque no son características de Jet4, son características que tiene Access (como programa).

nena_yei 02-03-2010 12:50:36

Ahaam..muchas gracias por tus respuestas Neftali. Qué lástima que no haya podido utilizar expresiones regulares, porque me hubiera quedado más limpio el código pero bueno.. que hi farem!

Gracias de nuevo, un saludo


La franja horaria es GMT +2. Ahora son las 22:39:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi