# CHAPTER 3: Windows バッチインターフェイス

## 3.1 はじめに

以下の 2 つのコマンドは、 Windows NT コマンドプロンプト上から Empress 問い合わせ言語を実行するために 使用することができます。

1. １つのコマンドを実行するための `empcmd`
2. コマンドをバッチで実行するための `empbatch`

バッチインターフェイスを利用することで、 迅速にデータベース管理のプロトタイプパッケージを提供することができます。 これは、既存のコンソールプログラム、C ルーチン、他のシェルプログラムから 単純なコマンドで呼び出すことができ、それにより、 迅速にデータベース管理システムの カスタムインターフェイスの設計および開発が可能となります。

## 3.2 Windows プロンプトから1つのコマンドの実行

Windows NT コマンドプロンプト上から１つの Empress SQLコマンドを実行するためには `empcmd`コマンドを使用します。 コマンドの構文は以下のとおりです。

`empcmd database "command"`

`database` | データベースディレクトリの名前
`command` | 実行するEmpress SQLコマンド

例 1: テーブルからアトリビュート値を検索する

以下のコマンドは、 `repairs`データベースの`personnel`テーブルから すべての従業員のリストを得るために実行します。

       empcmd repairs "SELECT name FROM personnel"

このコマンドは、 `repairs`と呼ばれるデータベースに対し、 Empress SQLコマンド "`SELECT name FROM personnel`" を実行します。`empsql`を呼び出す必要はありません。 コマンドの実行後は、Windows NT コマンドプロンプトに制御を戻します。

上記の`empcmd`コマンドは、`"names.bat"`と名付けたバッチファイル に格納し、コマンドプロンプト上から `"names"`を入力することで 従業員名のリストを出力することも可能です。

例 2: コマンドファイルの引数

`"phone.bat"`と呼ばれるバッチファイルに記述された 以下のコマンドは、引数に従業員名を指定し、従業員の電話番号を出力します。

       empcmd repairs "select phone from personnel dump
            where name = '%1'"<$Idump keyword>

`"dump"`キーワードは、 `"phone"`のヘッダーを出力させないために `empcmd`コマンドに指示されています。 "Jones"の電話番号を調べるためには、以下のように入力します。

       phone Jones

以下の結果が出力されます。

       667-2951

## 3.3 WindowsプロンプトからSQLコマンドのバッチの実行

`empbatch`コマンドは、 オペレーティングシステムから Empress SQLコマンドのバッチ処理を 実行することが可能です。 `empatch`は以下の構文になります。

`empbatch database`

`database` | データベースディレクトリ名

`empbatch`コマンドは対話モードで動作します。 この処理は、プロンプトを出力しないEmpress SQLと同じです。 各問い合わせ言語の終了にセミコロン";"を使用し、 コマンドは複数行、指定することが可能です。 プログラムが構文エラーの場合、終了します。

例として、コマンドプロンプトから以下のように入力した場合、

       empbatch repairs

コマンド入力のためにカーソルは、次の行で待ちます。 直接、コマンドを入力をすると

       SELECT FROM loans WHERE name = "Jones";

以下のように出力されます。

       names   date                amount

       Jones    7 February 1992    $33.95
       Jones    3 April 1992       $25.00
       Jones   12 August 1992     $300.00

<Ctrl+Z>または<F6> キーを押すと、オペレーティングシステムに制御が戻ります。

ファイルからの連続した問い合わせ言語を実行するために、 ファイルからの入力リダイレクションおよび オプションファイルとして指定することで使用することができます。 例えば、システムエディタを使って、以下のように記述された`"queries"`という ファイルを作成します。

       select from loans where name = "jones";
       select from loans where name = "mosca";

以下を入力し、バッチを実行します。

       empbatch repairs < queries

`empbatch`コマンドへの入力リダイレクションとして `queries`ファイルから入力を得ます。