「SQLスクリプトの実行」で結果セットを編集する
記事の内容に入る前に、はっきりさせておきたいことがあります。それは、決して本番データベースでのデータの直接編集を推奨しているのではないということです。しかし、テスト データベースということになると、直接データを編集する機能は、非常に重要です。
System i Navigatorの時代には、表を右クリックして「編集」オプションを選択することで、その表の内容が含まれるウィンドウを開くことができました。どのセルの内容も直接編集できました。行の挿入または削除は、メニューの「行」オプションを使用して行うことができました。
Access Client Solutions(ACS)では、表を右クリックしても、同じ「編集」コンテキスト メニュー オプションは利用できません。
けれども、「SQLスクリプトの実行」には、データを編集するための代わりとなるオプションがあります。この代わりとなるオプションには、System i Navigatorのオプションと比べて、大きな利点と小さな欠点があります。
結果セットでデータを編集できるようにするために、SQL SELECTステートメントを入力し、そのステートメントの最後にFOR UPDATEを追加します。たとえば、
select * from employee for update;
結果セットは、いつものように、「SQL スクリプトの実行」ウィンドウの下部のパネル(設定によっては別のウィンドウ)に表示されます。
後は、結果セット内のセルをダブルクリックするだけで、セルの内容が編集可能になります。
このアプローチで得られる大きな利点は、結果セットは、編集用で、selectステートメントがベースになっているということです。このことは、表全体を編集するのとは対照的に、表内の任意のデータの一部分(列や行)を編集できるということを意味します。
select empno, firstnme, lastname
from employee
where workdept = 'D11'
for update;
小さな欠点というのは、行を挿入または削除する場合に、SQL INSERTまたはDELETEステートメントを使用する必要がある点です。
結局のところ、この編集オプションは一歩前進だと私は思います。