使用 SQL 和脚本的数据库查询示例
Windows Installer 软件开发工具包(SDK)中提供了使用脚本驱动数据库查询作为实用工具 WiRunSQL.vbs 的示例。 此实用工具使用 SQL 语法部分中介绍的 Windows Installer 版本的 SQL 处理数据库查询。
从表中删除记录
以下命令行从 Test.msi 数据库的 功能 表中删除具有 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 数据库中删除 功能 表。
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 数据库的 功能 表中。
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','Tennis','Tournament',25,3,'SPORTDIR',2)”
这会将以下记录插入 Test.msi功能 表中。
功能 表
特征 | Feature_Parent | 标题 | 描述 | 显示 | 水平 | 目录_ | 属性 |
---|---|---|---|---|---|---|---|
网球 | 运动 | 网球 | 比赛 | 25 | 3 | SPORTDIR | 2 |
请注意,不能使用 INSERT INTO 或 UPDATE SQL 查询直接插入表中的二进制数据。 有关详细信息,请参阅 使用 SQL向表添加二进制数据。
修改表 中的现有记录
以下命令行将 Title 字段中的现有值更改为“Performances”。更新后的记录将“Art”作为其主键,位于 Test.msi 数据库的“功能”表中。
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 数据库的 组件 表。
CScript WiRunSQL.vbs Test.msi“ALTER TABLE 'Component' HOLD”
内存中释放表
以下命令行从内存中释放 Test.msi 数据库的 组件 表。
CScript WiRunSQL.vbs Test.msi“ALTER TABLE 'Component' FREE”