Ir al contenido principal

Actualización de Unicode en la base de datos

Todos los datos almacenados en la base de datos de IndySoft siguen el juego de caracteres establecido por la base de datos subyacente (MSSQL, Oracle, Firebird, etc.) Por lo general, los conjuntos de caracteres están destinados a un idioma o a un grupo de idiomas. Sin embargo, el conjunto de caracteres Unicode es único, ya que está diseñado para incluir caracteres de todas las principales lenguas del mundo. (Véase http://unicode.org/standard/standard.html)

A partir de la versión 11, IndySoft admite el uso de una base de datos Unicode. Si la base de datos de IndySoft es completamente nueva en el momento de la instalación, se puede utilizar un script DDL de Unicode en MSSQL u Oracle para crear los tipos de campo Unicode. En este caso, NO es necesario utilizar la utilidad ConvertDB. *-Los scripts de creación de bases de datos Unicode.sql se encuentran en el directorio del programa IndySoft, dentro del subdirectorio «DBScripts».

Si la base de datos IndySoft se ha utilizado anteriormente como base de datos no Unicode, primero debe actualizarse. Este proceso de conversión de la base de datos, que se realiza una sola vez, se lleva a cabo mediante la utilidad ConvertDB. Esta utilidad solo puede ser ejecutada por un administrador del sistema. Antes de actualizar una base de datos, ten en cuenta algunos aspectos específicos de cada tipo de base de datos:

Unicode - Bases de datos MSSQL
Es importante tener en cuenta que una base de datos Unicode en MSSQL, por definición, almacena datos de doble byte para cada carácter (codificación UTF-16). Por lo tanto, en comparación con una base de datos que no sea Unicode (de un solo byte), esto duplicará efectivamente el tamaño de la base de datos. Por lo tanto, admitir todos los caracteres internacionales en una sola base de datos ofrece una gran ventaja, pero esto conlleva un aumento del tamaño de la base de datos. Asegúrese de que el administrador de la base de datos tenga en cuenta el aumento del tamaño de la base de datos durante el proceso de conversión, ya que IndySoft se utiliza en las operaciones diarias.

Las bases de datos Unicode en MSSQL utilizan varios tipos de datos modificados en comparación con las bases de datos que no son Unicode:

oNVARCHAR (en lugar de VARCHAR)

oNCHAR (en lugar de CHAR)

oNTEXT (en lugar de TEXT)

La utilidad ConvertDB recorre todas las tablas de la base de datos IndySoft y modifica estos tipos de campo según sea necesario, conservando todos los datos existentes.
Unicode - Bases de datos Oracle
En general, las bases de datos Oracle pueden habilitarse para Unicode utilizando el juego de caracteres predeterminado del servidor o empleando tipos de campo Unicode en las tablas de la base de datos correspondientes. IndySoft se basa en esta segunda estrategia. Esto permite una mínima intervención en los servidores de bases de datos existentes (solo se modifican las tablas de IndySoft).

Las bases de datos Unicode en ORACLE utilizan varios tipos de datos modificados en comparación con una base de datos no Unicode:

oNVARCHAR2 (en lugar de VARCHAR2)

oNCHAR (en lugar de CHAR)

oNCLOB (en lugar de CLOB)

La utilidad ConvertDB recorre todas las tablas de la base de datos IndySoft y modifica estos tipos de campo según sea necesario, conservando todos los datos existentes.
Unicode - Bases de datos Firebird
Las bases de datos Firebird apenas requieren modificaciones para ser compatibles con Unicode. Solo es necesario realizar un pequeño cambio en el juego de caracteres predeterminado de la base de datos. A partir de la versión 11.0.40, el proceso de actualización de la base de datos (isupdb.exe) actualiza automáticamente el juego de caracteres predeterminado de todas las bases de datos IndySoft Firebird a Unicode durante la actualización de la base de datos 7.5. Por lo tanto, normalmente NO es necesario ejecutar ConvertDB.exe en Firebird (a menos que así lo indique el servicio de asistencia de IndySoft).
Ejecución de la utilidad ConvertDB
La ejecución de ConvertDB tiene varios requisitos previos:

a. ConvertDB solo se puede ejecutar desde una conexión de base de datos de dos niveles.

b. Solo un usuario con el perfil de «administrador del sistema» en IndySoft puede ejecutar ConvertDB. Es necesario iniciar sesión.

c. Todos los usuarios DEBEN haber cerrado sesión en la base de datos de IndySoft antes de ejecutar la utilidad ConvertDB y deben permanecer desconectados mientras se convierte la base de datos.

d. Se recomienda encarecidamente realizar una copia de seguridad completa de la base de datos de IndySoft antes de iniciar la actualización.

En el caso de las bases de datos MSSQL y Oracle, el proceso de actualización consistirá en registrar todas las restricciones y claves de las tablas de IndySoft, eliminar dichos objetos, actualizar los tipos de campo necesarios y, a continuación, volver a añadir las mismas restricciones y claves. Esta operación puede llevar bastante tiempo, dependiendo del tamaño de la base de datos de IndySoft. Todos los diseños de IndySoft (creados con LayoutBuilder) también se actualizarán rápidamente a Unicode al final del proceso.

Antes de iniciar sesión por primera vez, aparecerá el cuadro de diálogo «Confirmar configuración de la base de datos». Este cuadro de diálogo te muestra la configuración actual de la conexión a la base de datos tal y como figura en DatabaseSettings.exe, para que puedas estar seguro de qué base de datos se va a actualizar. ¡NO actualices por error la base de datos de producción cuando creas que solo estás apuntando a la base de datos de prueba! Esta actualización no se puede revertir. Comprueba siempre dos veces la conexión antes de continuar. Una vez confirmada, inicie sesión como «administrador del sistema». Solo hay dos casillas que debes marcar antes de iniciar la actualización:



ConvertDB - Actualización de bases de datos a Unicode

Actualizar la base de datos (desmarcar para solo registrar): La base de datos NO se actualizará si no se marca esta opción. En su lugar, todos los cambios de DDL necesarios se registrarán para su revisión.

Solo actualizaciones de diseños: Esta opción rara vez es necesaria; márcala solo si así te lo indica el servicio de asistencia de IndySoft. Esto solo actualizará los diseños de LayoutBuilder; las tablas de la base de datos no se actualizarán.

Pulsa «Empezar» para iniciar la conversión. Todas las acciones se registrarán en la ventana «Registro DDL» a medida que se realicen. Una vez completada la actualización, los usuarios podrán iniciar sesión en la base de datos actualizada.

Nota: Una vez completada la actualización de la base de datos a Unicode, todos los usuarios deben marcar la casilla «Unicode DB» en la configuración de conexión de DatabaseSettings (o desde la configuración del servidor de aplicaciones) antes de conectarse a la base de datos actualizada. IndySoft intentará avisar al usuario si detecta una discrepancia, pero esta debe solucionarse en DatabaseSettings antes de acceder a la pantalla principal.



Configuración de la base de datos Unicode - Ajustes de la base de datos

Tras actualizar la base de datos a Unicode, se pueden introducir libremente caracteres internacionales en cualquier pantalla de IndySoft:

FL_clip0003

Datos Unicode - Ejemplo

Registros de eliminación y reincorporación
HKM_clip0156Nota: Esta función está disponible a partir de la versión 12.1.0 de IndySoft.

Si utilizas la versión 12.1.0 o posterior, la utilidad de actualización de Unicode (ConvertDB.exe) incluye nuevas funciones ocultas. Cada vez que se ejecute la utilidad, añadirá automáticamente cualquier instrucción SQL de eliminación o reincorporación a un archivo de registro que recoge la actividad. Ahora dispondrás de un registro de todos los objetos incluidos en la actualización, por lo que podrás eliminarlos o volver a añadirlos más adelante. Si se produjera algún imprevisto durante la actualización (por ejemplo, si se agotara el espacio en disco), ahora puedes acceder a la ruta de archivos C:\Users\Public\Public Documents\IndySoft para ver los nuevos archivos .sql. Ten en cuenta que estos archivos de registro se crearán independientemente de si la utilidad marca la opción «Actualizar base de datos».

hkm_clip0167_zoom70

Actualización de Unicode: eliminar y volver a añadir los registros SQL |