Compartilhar via


Tabela _TransformView

Esta é uma tabela temporária somente leitura usada para exibir transformações com o modo de exibição de transformação. Esta tabela nunca é persistida pelo instalador.

Para invocar o modo de exibição de transformação, obtenha um identificador e abra o banco de dados de referência. Confira Como obter um identificador de banco de dados. Chame MsiDatabaseApplyTransform com MSITRANSFORM_ERROR_VIEWTRANSFORM. Isso impede que a transformação seja aplicada ao banco de dados e despeja o conteúdo da transformação na tabela _TransformView. Os dados na tabela podem ser acessados usando consultas SQL. Confira Como trabalhar com consultas.

A tabela _TransformView não será limpa quando outra transformação for aplicada. A tabela reflete o efeito cumulativo de aplicativos sucessivos. Para exibir as transformações separadamente, você deve liberar a tabela.

A tabela _TransformView tem as colunas a seguir.

Coluna Tipo Chave Nullable
Tabela Identificador S N
Coluna Texto S N
Linha Texto S S
Dados Texto N S
Current Texto N S

Coluna

Table

Nome de uma tabela de banco de dados alterada.

Column

Nome de uma coluna de tabela alterada ou INSERT, DELETE, CREATE ou DROP.

Row

Uma lista dos valores de chave primária separados por tabulações. Os valores nulos de chave primária são representados por um caractere de espaço. Um valor Null nessa coluna indica uma alteração de esquema.

Data

Dados, nome de um fluxo de dados ou uma definição de coluna.

Current

Valor atual do banco de dados de referência ou um número de coluna.

Comentários

O _TransformView é mantido na memória por uma contagem de bloqueios, que pode ser liberada com o comando SQL a seguir.

"ALTER TABLE _TransformView FREE".

Os dados na tabela podem ser acessados usando consultas SQL. A linguagem SQL tem duas divisões de main: DDL (Linguagem de Definição de Dados) que é usada para definir todos os objetos em um banco de dados SQL e DML (Linguagem de Manipulação de Dados) que é usada para selecionar, inserir, atualizar e excluir dados nos objetos definidos usando DDL.

As operações de transformação da DML (Linguagem de Manipulação de Dados) são indicadas da seguinte maneira. A DML (Linguagem de Manipulação de Dados) consiste em instruções no SQL que manipulam, em vez de definir os dados.

Operação de transformação Resultado do SQL
Modificar dados {table} {column} {row} {data} {current value}
Inserir linha {table} "INSERT" {row} NULL NULL
Excluir linha {table} "DELETE" {row} NULL NULL

As operações de transformação da DDL (Linguagem de Definição de Dados) são indicadas da seguinte maneira. A DDL (Linguagem de Definição de Dados) consiste em instruções no SQL que definem, em vez de manipular os dados.

Operação de transformação Resultado do SQL
Adicionar coluna {table} {column} NULL {defn} {column number}
Adicionar tabela {table} "CREATE" NULL NULL NULL
Remover tabela {table} "DROP" NULL NULL NULL

Quando a aplicação de uma transformação adiciona essa tabela, o campo Data recebe o texto que pode ser interpretado como um valor inteiro de 16 bits. O valor descreve a coluna chamada no campo Column. Você pode comparar o valor inteiro com as constantes na tabela a seguir para determinar a definição da coluna alterada.

bit Descrição
Bits 0 7
Hexadecimal: 0x0000 0x0100
Decimal: 0 255
Largura da Coluna
Bit 8
Hexadecimal: 0x0100
Decimal: 256
Uma coluna persistente. Zero significa uma coluna temporária.
Bit 9
Hexadecimal: 0x0200
Decimal: 1023
Uma coluna localizável. Zero significa que a coluna não pode ser localizada.
Bits 10 11
Hexadecimal: 0x0000
Decimal: 0
Long integer
Hexadecimal: 0x0400
Decimal: 1024
Inteiro curto
Hexadecimal: 0x0800
Decimal: 2048
Objeto binário
Hexadecimal: 0x0C00
Decimal: 3072
String
Bit 12
Hexadecimal: 0x1000
Decimal: 4096
Coluna anulável. Zero significa que a coluna não é anulável.
Bit 13
Hexadecimal: 0x2000
Decimal: 8192
Coluna de chave primária. Zero significa que essa coluna não é uma chave primária.
Bits 14 15
Hexadecimal: 0x4000 0x8000
Decimal: 16384 32768
Reservado

Para obter um exemplo de script que demonstra a tabela _TransformView, confira Exibir uma transformação.