SQL とスクリプトを使用したデータベース クエリの例

スクリプト駆動型データベース クエリの使用例は、ユーティリティ WiRunSQL.vbs として Windows インストーラー ソフトウェア開発キット (SDK) で提供されています。 このユーティリティは、「SQL 構文」セクションで説明されている Windows インストーラー バージョンの SQL を使用してデータベース クエリを処理します。

テーブルからレコードを削除する

次のコマンド ラインでは、主キー RED を含むレコードが、Test.msi データベースの Feature テーブルから削除されます。

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`)"

データベースからテーブルを削除する

次のコマンド ラインでは、Feature テーブルが 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 データベースの 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 Title 説明 表示 Level Directory_ 属性
テニス スポーツ テニス トーナメント 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"