Ir diretamente para o conteúdo principal

Atualização do Unicode da base de dados

Todos os dados armazenados na base de dados IndySoft seguem um conjunto de caracteres definido pela base de dados subjacente (MSSQL, Oracle, Firebird, etc.) Normalmente, os conjuntos de caracteres destinam-se a uma língua ou a um grupo de línguas. No entanto, o conjunto de caracteres Unicode é único, uma vez que foi concebido para incluir caracteres de todas as principais línguas do mundo. (Ver http://unicode.org/standard/standard.html)

A partir da versão 11, o IndySoft suporta a utilização de uma base de dados Unicode. Se a base de dados IndySoft for totalmente nova no momento da instalação, é possível utilizar um script DDL Unicode no MSSQL ou no Oracle para criar os tipos de campo Unicode. Neste caso, o utilitário ConvertDB NÃO é necessário. * Os scripts de criação da base de dados Unicode.sql encontram-se no diretório do programa IndySoft, dentro do subdiretório «DBScripts».

Se a base de dados IndySoft tiver sido utilizada anteriormente como uma base de dados não Unicode, terá de ser atualizada primeiro. Este processo único de conversão da base de dados é realizado através do utilitário ConvertDB. Este utilitário só pode ser executado por um administrador do sistema. Antes de atualizar uma base de dados, tenha em atenção alguns aspetos específicos relevantes para cada tipo de base de dados:

Unicode - Bases de dados MSSQL
É importante compreender que uma base de dados Unicode no MSSQL, por definição, armazena dados de dois bytes para cada caractere (codificação UTF-16). Assim, em comparação com uma base de dados não Unicode (de um único byte), isto irá efetivamente duplicar o tamanho da base de dados. Portanto, há uma enorme vantagem em suportar todos os caracteres internacionais numa única base de dados, mas isso implica um compromisso no que diz respeito ao tamanho da base de dados. Certifique-se de que o seu administrador de bases de dados permite o aumento do tamanho da base de dados durante o processo de conversão, uma vez que o IndySoft é utilizado nas operações diárias.

As bases de dados Unicode no MSSQL utilizam vários tipos de dados modificados em comparação com as bases de dados não Unicode:

oNVARCHAR (em vez de VARCHAR)

oNCHAR (em vez de CHAR)

oNTEXT (em vez de TEXT)

O utilitário ConvertDB percorre todas as tabelas da base de dados IndySoft e modifica estes tipos de campo conforme necessário, mantendo todos os dados existentes.
Unicode - Bases de dados Oracle
Em geral, as bases de dados Oracle podem ser compatíveis com Unicode utilizando o conjunto de caracteres predefinido do servidor ou recorrendo a tipos de campo Unicode nas tabelas de base de dados relevantes. A IndySoft baseia-se nesta segunda estratégia. Isto permite uma interferência mínima nos servidores de bases de dados existentes (apenas as tabelas da IndySoft são alteradas).

As bases de dados Unicode no ORACLE utilizam vários tipos de dados modificados em comparação com uma base de dados não Unicode:

oNVARCHAR2 (em vez de VARCHAR2)

oNCHAR (em vez de CHAR)

oNCLOB (em vez de CLOB)

O utilitário ConvertDB percorre todas as tabelas da base de dados IndySoft e modifica estes tipos de campo conforme necessário, mantendo todos os dados existentes.
Unicode - Bases de dados Firebird
As bases de dados Firebird requerem muito poucas alterações para suportar o Unicode. Basta uma rápida alteração no conjunto de caracteres predefinido da base de dados. A partir da versão 11.0.40, o processo de atualização da base de dados (isupdb.exe) atualiza automaticamente o conjunto de caracteres predefinido de todas as bases de dados IndySoft Firebird para Unicode durante a atualização da base de dados 7.5. Por isso, normalmente NÃO é necessário executar o ConvertDB.exe num Firebird (a menos que o Suporte da IndySoft o indique).
Executar o utilitário ConvertDB
A execução do ConvertDB tem vários pré-requisitos:

a. O ConvertDB só pode ser executado a partir de uma ligação de base de dados de duas camadas.

b. O ConvertDB só pode ser executado por um utilizador com o perfil de «Administrador do Sistema» no IndySoft. É necessário iniciar sessão.

c. Todos os utilizadores DEVEM sair da base de dados IndySoft antes de executar o utilitário ConvertDB e permanecer fora da base de dados enquanto esta estiver a ser convertida.

d. É altamente recomendável que se faça uma cópia de segurança completa da base de dados IndySoft antes de iniciar a atualização.

No caso das bases de dados MSSQL e Oracle, o processo de atualização envolverá o registo de todas as restrições e chaves das tabelas IndySoft, a eliminação desses objetos, a atualização dos tipos de campo necessários e, por fim, a reintrodução das mesmas restrições/chaves. Esta pode ser uma operação demorada, dependendo do tamanho da base de dados do IndySoft. Todos os layouts da IndySoft (criados no LayoutBuilder) serão também rapidamente atualizados para Unicode no final do processo.

Antes do primeiro início de sessão, será apresentada a caixa de diálogo «Confirmar definições da base de dados». Esta caixa de diálogo apresenta as definições atuais de ligação à base de dados do DatabaseSettings.exe, para que possa ter a certeza de qual é a base de dados que está prestes a ser atualizada. NÃO atualize acidentalmente a base de dados de produção quando pensa que está apenas a apontar para a base de dados de teste! Esta atualização não pode ser revertida. Verifique sempre a ligação antes de continuar. Após a confirmação, inicie sessão como «Administrador do sistema». Existem apenas duas caixas de seleção a verificar antes de iniciar a atualização:



ConvertDB - Atualização da base de dados para Unicode

Atualizar base de dados (desmarcar para apenas registar): A base de dados NÃO será atualizada se esta opção estiver desmarcada. Em vez disso, todas as alterações DDL necessárias serão registadas para revisão.

Apenas atualizações de layouts: Esta opção raramente é necessária; selecione-a apenas se for indicado pelo Suporte da IndySoft. Isto atualizará apenas os layouts do LayoutBuilder — as tabelas da base de dados não serão atualizadas.

Prima «Iniciar» para iniciar a conversão. Todas as ações serão registadas na janela «Registo DDL» à medida que forem realizadas. Após a conclusão da atualização, os utilizadores podem iniciar sessão na base de dados atualizada.

Nota: Após a conclusão da atualização da base de dados para Unicode, todos os utilizadores devem marcar a caixa de seleção «Unicode DB» nas suas definições de ligação em «DatabaseSettings» (ou na configuração do servidor de aplicações) antes de se ligarem à base de dados atualizada. A IndySoft tentará alertar o utilizador caso seja detetada uma condição de incompatibilidade — mas essa condição deve ser corrigida nas «Configurações da Base de Dados» antes de aceder ao ecrã principal.



Configuração da base de dados Unicode - Configurações da base de dados

Após atualizar a base de dados para Unicode, é possível introduzir livremente caracteres internacionais em qualquer ecrã do IndySoft:

FL_clip0003

Dados Unicode - Exemplo

Registos de exclusão/readição
HKM_clip0156Nota: Esta funcionalidade está disponível a partir da versão 12.1.0 do IndySoft.

Se estiver a utilizar a versão 12.1.0 ou superior, existem novas funcionalidades internas na ferramenta de atualização para Unicode (ConvertDB.exe). Sempre que o utilitário for executado, irá adicionar automaticamente quaisquer instruções SQL de remoção/re-adição a um ficheiro de registo que acompanha a atividade. Agora terá um registo de todos os objetos incluídos na atualização, para que possa removê-los ou voltar a adicioná-los mais tarde. Se ocorrer algum imprevisto durante a atualização (por exemplo, ficar sem espaço em disco), pode agora aceder ao caminho C:\Users\Public\Public Documents\IndySoft para ver os novos ficheiros .sql. Note que estes ficheiros de registo serão criados independentemente de o utilitário selecionar ou não a opção «Atualizar base de dados».

hkm_clip0167_zoom70

Atualização do Unicode: Eliminar e voltar a adicionar registos SQL |