Lesson 7 SQL
1. データベースを作成する
SQL データベースを作成するためには、最初に適切な資格を持ったユーザーが必要です。 そのユーザーの名前とパスワードはプロパティに保存されますので、 何らかの通常の UI 要素やカスタム・アクションを使って、設定することが出来ます。 これは、新しいユーザー・アカウントを作成する ために使ったのと同じ User タグであることに注意して下さい。 ただし、そのときは、Component タグの中で使われていました。 どのコンポーネントにも属さないときは、User タグはユーザーを作成せず、他の操作が必要とする資格を定義するだけです。 ここで使うタグも、SQL 関連の機能も、拡張モジュールの中にありますので、ソース・ファイルの開始タグの中で、 それらの拡張モジュールに言及しなければなりません。
更に、それらのタグは独自のネームスペースに属していますので、使用するときには修飾を加えなければなりません。
データベースの作成そのものは、いつものように、コンポーネントの中に入ります。 SqlDatabase は前の User の宣言を参照し、データベース名 (サーバーとインスタンス) を定義します。 Server を指定しない場合は、ターゲット・マシンで走っている SQL サーバーにデータベースをインストールすることになります。 その他の属性は、さまざまに異なる状況で、どのように進むべきかを指定します。 ConfirmOverwrite は、データベースが既に存在する場合にどうするかを決定し、 CreateOnInstall, CreateOnUninstall, DropOnInstall, DropOnUninstall の属性はインストールおよびアンインストールの際に要求される振る舞いを指図します。
入れ子にされた SqlScript タグは、作成されたばかりの空のデータベースに対して何をするべきかを決定します。 私たちは、ここで、独立したファイルに入っている SQL スクリプトを、妥当なものなら何でも、実行することが出来ます。 BinaryKey 属性が .sql ファイルへのリンクを提供します。 その他の属性は、エラーが発生したときの振る舞いを指定したり (ContinueOnError)、 スクリプトを実行する時を指定したりします (ExecuteOnInstall, ExecuteOnUninstall, RollbackOnInstall, RollbackOnUninstall)。 実行されるスクリプトが複数有る場合は、Sequence 属性を使って、実行の順序を指定する事が出来ます。
残っているのは、.sql
ファイルを含めることだけです。
参照する .sql
ファイルは、データベース・テーブルを作成するためのよくある SQL コマンドを記載したものです。
インストーラ・パッケージをビルドする時は、適切な WiX モジュールとリンクしなければなりません。
完全な SampleSQL をダウンロードすることが出来ます。
訳註:SampleSQL の日本語版は Sample-7-1-SQL.zip です。