_TransformView表

这是一个只读临时表,用于使用转换视图模式查看转换。 安装程序永远不会保留此表。

若要调用转换视图模式,请获取句柄并打开引用数据库。 请参阅 获取数据库句柄。 使用 MSITRANSFORM_ERROR_VIEWTRANSFORM 调用 MsiDatabaseApplyTransform。 这会停止将转换应用于数据库,并将转换内容转储到_TransformView表中。 可以使用 SQL 查询访问表中的数据。 请参阅 使用查询

应用另一个转换时,不会清除_TransformView表。 该表反映了连续应用程序的累积效果。 若要单独查看转换,必须释放表。

_TransformView表具有以下列。

类型 钥匙
桌子 标识符 Y N
文本 Y N
文本 Y Y
数据 文本 N Y
当前 文本 N Y

已更改的数据库表的名称。

已更改的表列或 INSERT、DELETE、CREATE 或 DROP 的名称。

按选项卡分隔的主键值的列表。 Null 主键值由单个空格字符表示。 此列中的 Null 值指示架构更改。

数据

数据流的数据、数据流的名称或列定义。

当前

引用数据库中的当前值或数字列。

言论

_TransformView由锁计数保存在内存中,可以使用以下 SQL 命令释放。

“ALTER TABLE _TransformView FREE”。

可以使用 SQL 查询访问表中的数据。 SQL 语言有两个主要划分:用于定义 SQL 数据库中的所有对象的数据定义语言(DDL),以及用于选择、插入、更新和删除使用 DDL 定义的对象中的数据的数据作语言(DML)。

数据作语言(DML)转换作如下所示。 数据作语言(DML)是在 SQL 中作(而不是定义)数据的语句。

转换作 SQL 结果
修改数据 {table}{column}{row}{data}{current value}
插入行 {table}“INSERT” {row} NULL NULL
删除行 {table}“DELETE” {row} NULL NULL

数据定义语言(DDL)转换作如下所示。 数据定义语言(DDL)是 SQL 中定义的语句,而不是作数据。

转换作 SQL 结果
添加列 {table}{column}NULL {defn} {column number}
添加表 {table}“CREATE”NULL NULL NULL
删除表 {table}“DROP”NULL NULL NULL

当转换的应用程序添加此表时,Data 字段将接收可解释为 16 位整数值的文本。 该值描述在“列”字段中命名的列。 可以将整数值与下表中的常量进行比较,以确定已更改列的定义。

描述
位 0 7
十六进制:0x0000 0x0100
小数:0 255
列宽
位 8
十六进制:0x0100
小数:256
永久性列。 零表示临时列。
位 9
十六进制:0x0200
十进制:1023
可本地化列。 零表示无法本地化列。
位 10 11
十六进制:0x0000
十进制数:0
长整数
十六进制:0x0400
小数:1024
短整数
十六进制:0x0800
小数:2048
Binary 对象
十六进制:0x0C00
小数:3072
字符串
位 12
十六进制:0x1000
小数:4096
可以为 Null 的列。 零表示该列不可为 null。
位 13
十六进制:0x2000
小数:8192
主键列。 零表示此列不是主键。
位 14 15
十六进制:0x4000 0x8000
小数:16384 32768
保留

有关演示_TransformView表的脚本示例,请参阅 查看转换