使用 SQL 和脚本的数据库查询示例

Windows Installer 软件开发工具包 (SDK) 中以实用工具 WiRunSQL.vbs 的形式提供了使用脚本驱动的数据库查询的示例。 此实用工具使用 SQL 语法部分中所述的 Windows Installer 版本的 SQL 处理数据库查询。

从表中删除记录

以下命令行从 Test.msi 数据库的 Feature 表中删除主键为 RED 的记录。

Cscript WiRunSQL.vbs Test.msi "DELETE FROM `Feature` WHERE `Feature`.`Feature`='RED'"

将表添加到数据库

以下命令行将 Directory 表添加到 Test.msi 数据库。

CScript WiRunSQL.vbs Test.msi "CREATE TABLE `Directory` (`Directory` CHAR(72) NOT NULL, `Directory_Parent` CHAR(72), `DefaultDir` CHAR(255) NOT NULL LOCALIZABLE PRIMARY KEY `Directory`)"

从数据库中移除表

以下命令行从 Test.msi 数据库中移除 Feature 表。

Cscript WiRunSQL.vbs Test.msi "DROP TABLE `Feature`"

向表添加新列

以下命令行将 Test 列添加到 Test.msi 数据库的 CustomAction 表。

CScript WiRunSQL.vbs Test.msi "ALTER TABLE `CustomAction` ADD `Test` INTEGER"

向表中插入新记录

以下命令行将新记录插入 Test.msi 数据库的 Feature 表。

Cscript WiRunSQL.vbs Test.msi "INSERT INTO `Feature` (`Feature`.`Feature`,`Feature`.`Feature_Parent`,`Feature`.`Title`,`Feature`.`Description`, `Feature`.`Display`,`Feature`.`Level`,`Feature`.`Directory_`,`Feature`.`Attributes`) VALUES ('Tennis','Sport','Tennis','Tournament',25,3,'SPORTDIR',2)"

这会将以下记录插入 Test.msi 的 Feature 表。

Feature

功能 Feature_Parent 标题 说明 显示 级别 Directory_ 特性
网球 运动 网球 Tournament 25 3 SPORTDIR 2

 

请注意,不能直接使用 INSERT INTO 或 UPDATE SQL 查询将二进制数据插入表中。 有关信息,请参阅使用 SQL 将二进制数据添加到表

修改表中的现有记录

以下命令行将“Title”字段中的现有值更改为“Performances”。更新的记录将“Arts”作为主键,并且该记录位于 Test.msi 数据库的 Feature 表中。

Cscript WiRunSQL.vbs Test.msi "UPDATE `Feature` SET `Feature`.`Title`='Performances' WHERE `Feature`.`Feature`='Arts'"

选择一组记录

以下命令行选择属于 Test.msi 数据库中 ErrorDialog 的所有控件的名称和类型。

CScript WiRunSQL.vbs Test.msi "SELECT `Control`, `Type` FROM `Control` WHERE `Dialog_`='ErrorDialog' "

将表保存在内存中

以下命令行在内存中锁定 Test.msi 数据库的 Component 表。

CScript WiRunSQL.vbs Test.msi "ALTER TABLE `Component` HOLD"

释放内存中的表

以下命令行从内存中释放 Test.msi 数据库的 Component 表。

CScript WiRunSQL.vbs Test.msi "ALTER TABLE `Component` FREE"