モニター項目編集画面

モニターしたい内容を設定する画面です。

名称 モニター項目に付ける名称です。自由に命名してください。
接続先 接続情報編集で登録した接続情報を選択します。
確認間隔 問合せを行ってDBの変化を自動確認する間隔を秒数で指定します。
0を指定した場合には自動確認されません。
SQL 問合せに使用するSQL文(問合せなのでSELECT文)を記述します。
問合せ結果として有効なのは、最初の行の最初の列だけです。
SQLウィザード SQL文作成をサポートする画面を表示します。ウィザードとか言ってますが一画面だけです。また、本当に単純なSQLしか作れません。
【テスト実行】 入力フィールドの内容で問合せを実行して結果を表示します。ログには残りません。
複数行返すようなSQLであっても特に警告しませんのでご注意ください。
【追加】 入力フィールドの内容で追加登録します。
【更新】 入力フィールドの内容で選択されている行の情報を更新します。
【削除】 選択中の行を削除します。
【▽】【△】 選択中の行を指定方向の行と入れ替えます。つまり並び替えです。
【編集の破棄】 変更内容をキャンセルし、この画面を開いた直後の状態まで戻します。
【保存して閉じる】 設定内容をMONItems.xmlに保存して画面を閉じます。
変更があった場合、メイン画面の行色がクリアされます。
【キャンセル】 変更内容をキャンセルして画面を閉じます。

SQL文には次の特殊文字列を使用することができます。

$prevnum$ 前回実行結果で置換します。前回実行結果が無い場合は「0」に置換します。
$prevstr$ 前回実行結果で置換します。前回実行結果が無い場合は「」に置換します。

これは、例えば、「変化が起こるたびに通知されるのは面倒だ。前回実行結果から一定の数以上の変化があった時だけ通知させるようにしたい。」といった場合に使えます。具体的には例えば次のように記述します。

SELECT
CASE
WHEN (COUNT(*) - $prevnum$) >= 100 THEN COUNT(*)
ELSE $prevnum$
END
FROM TABLE_NAME

これで、前回実行結果から100レコード以上増加した場合だけ通知されるようになります。(もちろん、CASEがサポートされたDBシステムである必要はあります。)
なお、【テスト実行】では前回実行結果無しとして実行されます。

SELECT以外のSQLも書くことはできますが、INSERT,UPDATE,DELETEは結果を返さないので常にNULL扱いになってしまいます(つまり変更通知されることが無い)。またロールバックしない(トランザクション自体使ってません)ので実際にDBを更新してしまいます。これは【テスト実行】でも同じです。このことはSEQUENCEにNEXTVALとかでSELECTした場合にも言えます。