Vai al contenuto principale

Aggiornamento del database a Unicode

Tutti i dati memorizzati nel database IndySoft utilizzano un set di caratteri definito dal database sottostante (MSSQL, Oracle, Firebird, ecc.) In genere, i set di caratteri sono destinati a una lingua o a un gruppo di lingue. Tuttavia, il set di caratteri Unicode è unico nel suo genere, poiché è stato progettato per includere caratteri di tutte le principali lingue del mondo. (Vedi http://unicode.org/standard/standard.html)

A partire dalla versione 11, IndySoft supporta l'uso di un database Unicode. Se il database IndySoft è appena stato installato, è possibile utilizzare uno script DDL Unicode in MSSQL o Oracle per creare i tipi di campo Unicode. In questo caso, l'utilità ConvertDB NON è necessaria. *- Gli script per la creazione del database Unicode.sql si trovano nella directory del programma IndySoft, all'interno della sottodirectory "DBScripts".

Se il database IndySoft è stato precedentemente utilizzato come database non Unicode, è necessario prima aggiornarlo. Questo processo di conversione del database, da eseguire una sola volta, viene effettuato tramite l'utilità ConvertDB. Questa utility può essere eseguita solo da un amministratore di sistema. Prima di aggiornare un database, occorre tenere presente alcune particolarità relative a ciascun tipo di database:

Unicode - Banche dati MSSQL
È importante comprendere che una banca dati Unicode in MSSQL, per definizione, memorizza dati a doppio byte per ogni carattere (codifica UTF-16). Pertanto, rispetto a un database non Unicode (a byte singolo), ciò raddoppierà di fatto le dimensioni del database. Quindi, sebbene il supporto di tutti i caratteri internazionali all'interno di un unico database comporti un enorme vantaggio, ciò comporta un compromesso in termini di dimensioni del database. Assicuratevi che l'amministratore del database tenga conto dell'aumento delle dimensioni del database durante il processo di conversione, poiché IndySoft viene utilizzato nelle operazioni quotidiane.

I database Unicode in MSSQL utilizzano diversi tipi di dati modificati rispetto ai database non Unicode:

oNVARCHAR (al posto di VARCHAR)

oNCHAR (al posto di CHAR)

oNTEXT (al posto di TEXT)

L'utilità ConvertDB esegue un ciclo su tutte le tabelle del database IndySoft e modifica questi tipi di campo secondo necessità, conservando tutti i dati esistenti.
Unicode - Banche dati Oracle
In generale, è possibile abilitare il supporto Unicode nelle banche dati Oracle utilizzando il set di caratteri predefinito del server oppure impiegando tipi di campo Unicode all'interno delle tabelle di database interessate. IndySoft punta su questa seconda strategia. Ciò garantisce il minimo impatto sui server di database esistenti (vengono modificate solo le tabelle IndySoft).

I database Unicode in ORACLE utilizzano diversi tipi di dati modificati rispetto a un database non Unicode:

oNVARCHAR2 (al posto di VARCHAR2)

oNCHAR (al posto di CHAR)

oNCLOB (al posto di CLOB)

L'utilità ConvertDB esegue un ciclo su tutte le tabelle del database IndySoft e modifica questi tipi di campo secondo necessità, conservando tutti i dati esistenti.
Unicode - Banche dati Firebird
Le banche dati Firebird richiedono modifiche minime per supportare Unicode. È sufficiente modificare rapidamente il set di caratteri predefinito del database. A partire dalla versione 11.0.40, il processo di aggiornamento del database (isupdb.exe) aggiorna automaticamente il set di caratteri predefinito di tutti i database IndySoft Firebird a Unicode durante l'aggiornamento del database alla versione 7.5. Pertanto, in genere NON è necessario eseguire ConvertDB.exe su Firebird (a meno che non sia richiesto dal supporto tecnico di IndySoft).
Esecuzione dell'utilità ConvertDB
L'esecuzione di ConvertDB richiede alcuni prerequisiti iniziali:

a. ConvertDB può essere eseguito solo tramite una connessione al database a due livelli.

b. ConvertDB può essere eseguito solo da un utente con il profilo "Amministratore di sistema" in IndySoft. È necessario effettuare l'accesso.

c. Tutti gli utenti DEVONO aver effettuato il logout dal database IndySoft prima di eseguire l'utilità ConvertDB e devono rimanere disconnessi durante la conversione del database.

d. Si raccomanda vivamente di eseguire un backup completo del database IndySoft prima di avviare l'aggiornamento.

Per i database MSSQL e Oracle, il processo di aggiornamento prevede la registrazione di tutti i vincoli e le chiavi delle tabelle IndySoft, l'eliminazione di tali oggetti, l'aggiornamento dei tipi di campo necessari e infine la reimmissione degli stessi vincoli e chiavi. Si tratta di un'operazione che può richiedere molto tempo, a seconda delle dimensioni del database IndySoft. Tutti i layout IndySoft (creati con LayoutBuilder) verranno inoltre rapidamente convertiti in Unicode al termine del processo.

Prima del primo accesso, verrà visualizzata la finestra di dialogo "Conferma impostazioni database". Questa finestra di dialogo mostra le impostazioni di connessione al database attualmente in uso in DatabaseSettings.exe, in modo da poter verificare con certezza quale database sta per essere aggiornato. Non aggiornare accidentalmente il database di produzione quando pensi di aver selezionato solo il database di prova! Questa modifica è irreversibile. Controlla sempre attentamente il collegamento prima di procedere. Dopo la conferma, accedi come «Amministratore di sistema». Prima di avviare l'aggiornamento, è necessario selezionare solo due caselle di controllo:



ConvertDB - Aggiornamento del database a Unicode

Aggiorna database (deselezionare per eseguire solo il log): se questa opzione non è selezionata, il database NON verrà aggiornato. Tutte le modifiche DDL necessarie verranno invece registrate per essere esaminate.

Solo per l'aggiornamento dei layout: questa opzione è raramente necessaria; selezionarla solo se richiesto dall'assistenza IndySoft. Questo aggiornerà solo i layout creati con LayoutBuilder; le tabelle del database non verranno aggiornate.

Premere "Avvia" per avviare la conversione. Tutte le operazioni verranno registrate nella finestra "DDL Log" man mano che vengono eseguite. Una volta completato l'aggiornamento, gli utenti potranno accedere al database aggiornato.

Nota: Una volta completato l'aggiornamento del database a Unicode, tutti gli utenti devono selezionare la casella "Unicode DB" nelle impostazioni di connessione di DatabaseSettings (o dalla configurazione del server delle applicazioni) prima di connettersi al database aggiornato. IndySoft cercherà di avvisare l'utente qualora venga rilevata una discrepanza; tuttavia, tale discrepanza dovrà essere risolta nelle impostazioni del database prima di accedere alla schermata principale.



Impostazioni database Unicode - Impostazioni database

Dopo aver aggiornato il database a Unicode, è possibile inserire liberamente caratteri internazionali in qualsiasi schermata IndySoft:

FL_clip0003

Dati Unicode - Esempio

Registro delle rimozioni/aggiunte
HKM_clip0156Nota: questa funzione è disponibile a partire dalla versione 12.1.0 di IndySoft.

Se utilizzi la versione 12.1.0 o successive, sono disponibili nuove funzionalità nascoste per l'utilità di aggiornamento Unicode (ConvertDB.exe). Ogni volta che viene eseguita l'utilità, questa aggiunge automaticamente eventuali istruzioni SQL di rimozione/reinserimento a un file di log che tiene traccia dell'attività. Ora avrai un elenco di tutti gli oggetti inclusi nell'aggiornamento, così potrai eliminarli o aggiungerli nuovamente in un secondo momento. Se durante l'aggiornamento dovesse verificarsi un imprevisto (ad esempio, l'esaurimento dello spazio su disco), ora è possibile accedere al percorso C:\Users\Public\Public Documents\IndySoft per visualizzare i nuovi file .sql. Si noti che questi file di log verranno creati indipendentemente dal fatto che l'utilità selezioni o meno l'opzione «Aggiorna database».

hkm_clip0167_zoom70

Aggiornamento Unicode: eliminare e reinserire i log SQL |