Página 1 de 1

Error Coolations Mariadb

Publicado: Lun May 12, 2025 7:10 pm
por gerencia
Hola Ignacio,
Después de actualizar a la version 9.2.1 y actualizar la DLL de MariaDb, las sentencias sql me arrojan un error de collations,

Imagen

Cambie al iniciar la conexión el collations con esta instrucción

Código: Seleccionar todo

      If !::oConect:Execute("SET collation_connection = 'latin1_swedish_ci'")
         MsgStop("SET collation_connection = 'latin1_swedish_ci'",'Error')
         __Quit()
      ENDIF
Desaparece el error de las sentencias, pero me cambia todos los caracteres de los campos memos.

Imagen

Coloco la DLL vieja de Mariadb y funciona todo Ok.

Pregunta, toca en esta version tener encuenta algo especial con el tema de las collations,
asi estan configuradas en mi servidor Mariadb

Variable_name Value
-------------------- --------------------
collation_connection utf8mb3_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

Saludos,

Re: Error Coolations Mariadb

Publicado: Mar May 13, 2025 4:20 pm
por ignacio
Buenos días,

La última versión de Xailer utiliza una nueva versión más actualizada de la DLL. Es muy probable que este error de mezcla de colaciones no fuese mostrado en antiguas versiones de la DLL, pero si en las más actuales.

Tiene dos opciones:
- usar la DLL antigua
- hacer que coincidan las colaciones de todos los campos de sus tablas tipo carácter

Un saludo

Nota: el campo COERCIBLE utiliza colación UTF8mb4 y el campo IMPLICIT utiliza latin1_swedish

Re: Error Coolations Mariadb

Publicado: Mar Jun 03, 2025 8:04 pm
por gerencia
Hola Ignacio.

Revisando lo que hacia la .dll vieja de Xailer de Mariadb vs la más reciente.
La dll vieja sin cambiar nada en los parámetros del servidor de Mariadb, y haciendo un SHOW SESSION VARIABLES LIKE 'character\_set\_%'; desde el programa , muestra los character set del server así

Imagen con Dll antigua de Xailer
Imagen

Al reemplazar la dll de Mariadb por la nueva y aplicando el SHOW SESSION VARIABLES LIKE 'character\_set\_%'; desde el programa mira que cambia latin1 por utf8mb4 y queda así,

Imagen con Dll reciente de Xailer
Imagen

Entonces cambie dentro del programa el collation de la conexión y el character_set al momento de conectarme asi.

Código: Seleccionar todo

      If !::oConect:Execute("SET collation_connection = 'latin1_swedish_ci' ")
         MsgStop("SET collation_connection = 'latin1_swedish_ci '",'Error')    //latin1_swedish_ci
         __Quit()
      ENDIF

         If !::oConect:Execute("SET CHARACTER SET 'latin1'")
         MsgStop("SET character_set_client = 'latin1_swedish_ci '",'Error')    //latin1_swedish_ci
         __Quit()
      ENDIF
 
y ahora vuelve a quedar como lo mostraba la vieja Dll y todo funcionando perfecto, con la Dll mas reciente
y así poder usar las mejoras para aceptar conexiones SSL .

Imagen con Dll reciente de Xailer y cambios en programa
Imagen

Espero que le sirva a alguien que tenga el mismo problema al actualizar la dll de Mariadb.

Saludos,

Re: Error Coolations Mariadb

Publicado: Mar Jun 03, 2025 8:13 pm
por ignacio
Gracias por compartir la información.

Un saludo