Extendiendo la clase String - SQLike - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html) +--- Tema: Extendiendo la clase String - SQLike (/thread-866.html) |
Extendiendo la clase String - SQLike - tincho - 03-04-2022 Hola a todos. Como algunos de ustedes sabrán, hay motores de bases de datos que soportan las expresiones regulares (REGEXP) en las sentencias SQL. Esto es muy útil si se desea filtrar registros cuando las capacidad de LIKE se ve superada. Si por ejemplo se buscan registros que en un determinado campo tengan los "A" o también "Á" con LIKE no se puede hacer pero con REGEXP si. Ejemplo: Código: SELECT * FROM UnaTabla WHERE UnCampo REGEXP '[AÁ]' Código: '' Converts the word into an expression that allows filtering with accents in a like statement. RE: Extendiendo la clase String - SQLike - Grandamakulo - 04-04-2022 Lo mismo digo una burrada, pero ¿por qué no transformas primero las cadenas y luego las comparas? ¿O llevaría demasiado tiempo? Quiero decir, si puedes emplear RegEx, podrías usar expresiones como cualquiera de estas tres, según lo que busques hacer: Código: ([A-Za-z0-9\u00C0-\u02B8\-])[A-Za-z0-9\u00C0-\u02B8\-] No sé si me he explicado, pero, en resumen, es como cuando haces Ucase(RTrim(LTrim(A$))) previo a una consulta, pero en este caso sustituyendo las tildadas con RegExp.Replace. RE: Extendiendo la clase String - SQLike - tincho - 04-04-2022 (04-04-2022, 08:27)Grandamakulo escribió: Lo mismo digo una burrada, pero ¿por qué no transformas primero las cadenas y luego las comparas? ¿O llevaría demasiado tiempo? No lo se, habría que probarlo. ¿Como harías la consulta SQL? si es posible proporciona un ejemplo o modifica el código que adjunte. RE: Extendiendo la clase String - SQLike - gambafeliz - 04-04-2022 Hola, Grandamakulo Seria interesante que expliques tu opinión con mas detalle, yo en lo particular no soy muy ducho con las expresiones irregulares. Gracias. tincho, Interesante propuesta, lo estudio para ver si le puedo sacar partido. Gracias. De momento, no conocía, REGEXP con lo cual, hoy he aprendido algo nuevo. RE: Extendiendo la clase String - SQLike - Grandamakulo - 05-04-2022 Estoy fuera, si me permitís un día o dos, trato de mostrar lo que quiero decir. RE: Extendiendo la clase String - SQLike - tincho - 05-04-2022 (05-04-2022, 08:16)Grandamakulo escribió: Estoy fuera, si me permitís un día o dos, trato de mostrar lo que quiero decir. Tranquilo, este tema que propongo es solo un ejemplo de una función que extiende la clase String, lo de las consultas SQL es secundario, por lo menos en este tema. RE: Extendiendo la clase String - SQLike - gambafeliz - 11-05-2022 tincho fue interesante tu propuesta pero añado tu función y pongo tu consulta y da error en la base de datos, ¿es posible que tengas algo distinto? Me devuelve la base de datos: Cannot execute query on undefined or invalid database. Es exactamente con todo tu código de ejemplo. Si funciona, no me he dado cuenta de un problema de mi código. Aunque debo decir que no funciona para obtener el resultado que esperabamos, osea resultados con acentos. |