Aller directement au contenu principal

Mise à niveau Unicode de la base de données

Toutes les données stockées dans la base de données IndySoft respectent le jeu de caractères défini par la base de données sous-jacente (MSSQL, Oracle, Firebird, etc.) En général, les jeux de caractères sont destinés à une langue ou à un groupe de langues. Cependant, le jeu de caractères Unicode est unique en son genre, car il est conçu pour prendre en charge les caractères de toutes les principales langues du monde. (Voir http://unicode.org/standard/standard.html)

À partir de la version 11, IndySoft prend en charge l'utilisation d'une base de données Unicode. Si la base de données IndySoft est toute nouvelle au moment de l'installation, il est possible d'utiliser un script DDL Unicode dans MSSQL ou Oracle pour créer les types de champs Unicode. Dans ce cas, l'utilitaire ConvertDB n'est PAS nécessaire. *- Les scripts de création de base de données Unicode.sql se trouvent dans le répertoire du programme IndySoft, dans le sous-répertoire « DBScripts ».

Si la base de données IndySoft a déjà été utilisée comme base de données non Unicode, elle doit d'abord être mise à niveau. Ce processus de conversion de base de données, qui n'est effectué qu'une seule fois, est réalisé à l'aide de l'utilitaire ConvertDB. Cet utilitaire ne peut être exécuté que par un administrateur système. Avant de mettre à niveau une base de données, veuillez prendre en compte certaines particularités propres à chaque type de base de données :

Unicode - Bases de données MSSQL
Il est important de comprendre qu'une base de données Unicode dans MSSQL stocke, par définition, des données à double octet pour chaque caractère (encodage UTF-16). Ainsi, par rapport à une base de données non Unicode (à un octet), cela doublera de fait la taille de la base de données. La prise en charge de tous les caractères internationaux au sein d'une seule base de données présente donc un avantage considérable, mais cela a pour contrepartie une augmentation de la taille de la base de données. Veuillez vous assurer que votre administrateur de base de données prévoit une augmentation de la taille de la base de données pendant le processus de conversion, car IndySoft est utilisé dans le cadre des opérations quotidiennes.

Les bases de données Unicode dans MSSQL utilisent plusieurs types de données modifiés par rapport aux bases de données non Unicode :

oNVARCHAR (au lieu de VARCHAR)

oNCHAR (au lieu de CHAR)

oNTEXT (au lieu de TEXT)

L'utilitaire ConvertDB parcourt toutes les tables de la base de données IndySoft et modifie ces types de champs si nécessaire, tout en conservant toutes les données existantes.
Unicode - Bases de données Oracle
En général, les bases de données Oracle peuvent prendre en charge Unicode en utilisant le jeu de caractères par défaut du serveur ou en utilisant des types de champs Unicode dans les tables de base de données concernées. IndySoft s'appuie sur cette deuxième stratégie. Cela permet de limiter au maximum l'impact sur les serveurs de bases de données existants (seules les tables IndySoft sont modifiées).

Les bases de données Unicode dans ORACLE utilisent plusieurs types de données modifiés par rapport à une base de données non Unicode :

oNVARCHAR2 (au lieu de VARCHAR2)

oNCHAR (au lieu de CHAR)

oNCLOB (au lieu de CLOB)

L'utilitaire ConvertDB parcourt toutes les tables de la base de données IndySoft et modifie ces types de champs selon les besoins, tout en conservant toutes les données existantes.
Unicode - Bases de données Firebird
Les bases de données Firebird ne nécessitent que très peu de modifications pour prendre en charge Unicode. Il suffit de modifier rapidement le jeu de caractères par défaut de la base de données. À partir de la version 11.0.40, le processus de mise à niveau de la base de données (isupdb.exe) met automatiquement à jour le jeu de caractères par défaut de toutes les bases de données IndySoft Firebird vers Unicode lors de la mise à niveau vers la version 7.5. Il n'est donc généralement PAS nécessaire d'exécuter ConvertDB.exe sur Firebird (sauf indication contraire du support technique d'IndySoft).
Exécution de l'utilitaire ConvertDB
L'exécution de ConvertDB nécessite plusieurs conditions préalables :

a. ConvertDB ne peut être exécuté qu'à partir d'une connexion à une base de données à deux niveaux.

b. ConvertDB ne peut être exécuté que par un utilisateur disposant d'un profil « Administrateur système » dans IndySoft. Une connexion est requise.

c. Tous les utilisateurs DOIVENT se déconnecter de la base de données IndySoft avant l'exécution de l'utilitaire ConvertDB et rester déconnectés pendant la conversion de la base de données.

d. Il est fortement recommandé de sauvegarder intégralement la base de données IndySoft avant de commencer la mise à niveau.

Pour les bases de données MSSQL et Oracle, le processus de mise à niveau consistera à répertorier toutes les contraintes et clés des tables IndySoft, à supprimer ces objets, à mettre à niveau les types de champs nécessaires, puis à rajouter les mêmes contraintes et clés. Cette opération peut prendre un certain temps, selon la taille de la base de données IndySoft. Toutes les mises en page IndySoft (provenant de LayoutBuilder) seront également rapidement mises à niveau vers Unicode à la fin du processus.

Avant la première connexion, la boîte de dialogue « Confirmer les paramètres de la base de données » s'affichera. Cette boîte de dialogue vous rappelle les paramètres de connexion à la base de données actuellement définis dans DatabaseSettings.exe, ce qui vous permet de vérifier quelle base de données est sur le point d'être mise à jour. Ne mettez surtout PAS à jour par inadvertance la base de données de production alors que vous pensez ne viser que la base de données de test ! Cette mise à jour est irréversible. Vérifiez toujours soigneusement la connexion avant de continuer. Une fois la confirmation effectuée, connectez-vous en tant qu'« administrateur système ». Il n'y a que deux cases à cocher à vérifier avant de commencer la mise à niveau :



ConvertDB - Mise à niveau de la base de données vers Unicode

Mettre à jour la base de données (décocher pour enregistrer uniquement) : la base de données ne sera PAS mise à jour si cette option n'est pas cochée. Au lieu de cela, toutes les modifications DDL requises seront consignées pour être examinées.

Mise à niveau des mises en page uniquement : cette option est rarement nécessaire ; ne la sélectionnez que si le support IndySoft vous le demande. Cette opération ne mettra à jour que les mises en page créées à l'aide de LayoutBuilder ; les tables de la base de données ne seront pas mises à jour.

Appuyez sur « Démarrer » pour lancer la conversion. Toutes les actions seront consignées dans la fenêtre « Journal DDL » au fur et à mesure de leur exécution. Une fois la mise à niveau terminée, les utilisateurs peuvent se connecter à la base de données mise à niveau.

Remarque : Une fois la mise à niveau de la base de données vers Unicode terminée, tous les utilisateurs doivent cocher la case « Unicode DB » dans leurs paramètres de connexion DatabaseSettings (ou depuis la configuration du serveur d'applications) avant de se connecter à la base de données mise à niveau. IndySoft tentera d'alerter l'utilisateur si une incohérence est détectée, mais celle-ci doit être corrigée dans DatabaseSettings avant de pouvoir accéder à l'écran principal.



Paramètres de la base de données Unicode - Paramètres de la base de données

Une fois la base de données mise à niveau vers Unicode, il est possible de saisir librement des caractères internationaux dans n'importe quel écran IndySoft :

FL_clip0003

Données Unicode - Exemple

Journaux des suppressions/réajouts
HKM_clip0156Remarque : cette fonctionnalité est disponible à partir de la version 12.1.0 d'IndySoft.

Si vous utilisez la version 12.1.0 ou une version ultérieure, l'utilitaire de mise à niveau Unicode (ConvertDB.exe) intègre désormais de nouvelles fonctionnalités en arrière-plan. Chaque fois que l'utilitaire est exécuté, il ajoute automatiquement toutes les instructions SQL de suppression et de réinsertion à un fichier journal qui consigne l'activité. Vous disposez désormais d'un journal répertoriant tous les objets inclus dans la mise à niveau, ce qui vous permettra de les supprimer ou de les rajouter ultérieurement. Si un imprévu venait à se produire pendant la mise à niveau (par exemple, un manque d'espace disque), vous pouvez désormais vous rendre dans le répertoire C:\Users\Public\Public Documents\IndySoft pour consulter les nouveaux fichiers .sql. Notez que ces fichiers journaux seront créés, que l'utilitaire coche ou non l'option « Mettre à jour la base de données ».

hkm_clip0167_zoom70

Mise à niveau Unicode : suppression puis réintégration des journaux SQL |