使用 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"