Tratamento da página de código de tabelas importadas e exportadas
Você pode adicionar informações de localização a um banco de dados de instalação importando e exportando arquivos mortos de texto ASCII usando MsiDatabaseExport e MsiDatabaseImport. Como o pool de cadeias de caracteres de banco de dados usa uma página de código ANSI, o banco de dados e os arquivos mortos de texto exportados têm páginas de código.
Quando um arquivo morto de texto é exportado de um banco de dados, a página de código do arquivo morto é igual ao do banco de dados pai. Para ver a lista de páginas de código numérico, confira Como localizar as tabelas Error e ActionText.
Observação
A exportação de uma tabela para um arquivo morto de texto converte os caracteres de controle para evitar conflitos com delimitadores de arquivo.
Arquivos mortos de texto ASCII
Os arquivos mortos de texto ASCII exportados por MsiDatabaseExport são explicados no seguinte formato:
- Os nomes das colunas das tabelas são gravados na primeira linha.
- Os formatos de coluna são gravados na segunda linha.
- Se a tabela contiver apenas dados ASCII, a terceira linha do arquivo de texto será o nome da tabela seguido de uma lista das chaves primárias.
- Se a tabela contiver dados não ASCII e o banco de dados tiver um carimbo de uma página de código numérico, o número da página de código será exibido no início da terceira linha.
- Se o banco de dados contiver dados não ASCII, mas o banco de dados não tiver um carimbo da página de código numérico, o número da página de código do sistema atual será gravado no início da terceira linha.
- As linhas restantes do arquivo de texto são os dados na página de código especificada.
- Se uma tabela contiver fluxos, MsiDatabaseExport exportará cada fluxo da tabela para um arquivo separado.
Páginas de código neutro e não neutro
Você pode facilitar a localização começando com um banco de dados que tem uma página de código neutro:
- Um banco de dados em branco tem uma página de código neutro.
- Um banco de dados que não contém caracteres estendidos que exigem que uma página de código seja representada no ASCII tem uma página de código neutro.
Para obter mais informações, confira Como criar um banco de dados com uma página de código neutro.
As páginas de código neutro e não neutro têm as seguintes características:
- Se um arquivo morto de texto com uma página de código não neutro for importado para um banco de dados que tenha outra página de código não neutro, o Installer retornará um erro quando MsiDatabaseImport for chamado.
- Um arquivo morto de texto com uma página de código neutro pode ser importado para um banco de dados que tenha qualquer página de código.
- Um arquivo morto de texto que tenha qualquer página de código pode ser importado para um banco de dados que tenha uma página de código neutro.
- A importação de um arquivo morto de texto para um banco de dados com uma página de código neutro define a página de código do banco de dados como a página de código do arquivo morto. Todos os arquivos mortos posteriormente importados para o banco de dados precisam ter a mesma página de código do primeiro arquivo.
Para obter mais informações, confira Como determinar uma página de código do banco de dados de instalação e Como definir a página de código de um banco de dados.
Os arquivos mortos de texto exportados por MsiDatabaseExport podem ser usados com sistemas de controle de versão. Use as funções de banco de dados ou um editor de tabela de banco de dados para editar o banco de dados.
Adicione informações de localização a um banco de dados de instalação usando um editor de tabela de banco de dados ou a API do Windows Installer. Para obter mais informações, confira Tratamento da página de código das cadeias de caracteres de parâmetro.