存档文件格式

Windows Installer 数据库的 文本存档文件 带有 .idt 文件扩展名。 将整个数据库导出到存档文件时,数据库中的每个表都有一个单独的 .idt 文件。 如果表包含流列,则表中的每个流都由扩展名为 .ibd 的文件表示。 .ibd 文件存储在与表同名的文件夹中。

.idt 文件格式

仅包含 ASCII 字符的导出数据库表的 .idt 文件具有以下基本格式。

  • 第一行包含由选项卡分隔的表列名称。
  • 第二行包含按选项卡分隔的列定义。
  • 如果文件仅包含 ASCII 数据,则第三行是表名和主键列名,用选项卡分隔。
  • 文件中的其余行表示表中的行,列用制表符分隔。

注意

如果文件包含非 ASCII 数据,则第三行是数字代码页,后跟表名和主键列名称,用选项卡分隔。 包含非 ASCII 信息的 .idt 文件应以 ASCII 格式保存。 例如,文本存档文件可以包含编码为 UTF-8 的列名和表名,但存档文件本身应为 ASCII。 请参阅文本存档文件 中的 ASCII 数据部分。

 

注意

特殊 _ForceCodepage_SummaryInformation .idt 文件使用扩展格式。 有关其格式的说明,请参阅_ForceCodepage和_SummaryInformation部分。

 

列定义

列定义由字符指示。

  • 第一个字符指示列类型。 小写字母指示不可为 null 的列,大写字母指示该列可以包含 null 值。

    字符 意义
    s、S 字符串列
    l、L 可本地化字符串列
    v、V 二进制列
    i、I 整数列

     

  • 第二个字符指示列数据大小。

    注意

    Windows Installer 实际上未使用指定的列大小来限制可以输入到字符串列字段中的字符串的大小。 但是,某些创作工具确实使用指定的列大小来限制有效字符串的大小。 建议在任何列中输入的字符串满足指定的大小要求。

     

    列定义 意义
    s255 不可为 Null 的字符串列 255 long
    L50 可为 Null 的可本地化字符串列 50 长
    i2、I2 短整数列
    i4、I4 长整数列

     

控制字符翻译

将表导出到文本存档文件会转换控制字符,以避免与文件分隔符冲突。 写入 .idt 文件时,控件字符将按如下所示进行转换。

控制字符 .idt 中的翻译 意义
21
BS 27 后退空间
HT 16 标签
如果 25 换行符
FF 24 表单源
17 回车符