メニューボタン
IBMi海外記事2020.01.15

「SQLスクリプトの実行」で結果セットを編集する

Paul Tuohy 著
トップイメージ図(結果)

記事の内容に入る前に、はっきりさせておきたいことがあります。それは、決して本番データベースでのデータの直接編集を推奨しているのではないということです。しかし、テスト データベースということになると、直接データを編集する機能は、非常に重要です。

System i Navigatorの時代には、表を右クリックして「編集」オプションを選択することで、その表の内容が含まれるウィンドウを開くことができました。どのセルの内容も直接編集できました。行の挿入または削除は、メニューの「行」オプションを使用して行うことができました。

Access Client Solutions(ACS)では、表を右クリックしても、同じ「編集」コンテキスト メニュー オプションは利用できません。

ACS

けれども、「SQLスクリプトの実行」には、データを編集するための代わりとなるオプションがあります。この代わりとなるオプションには、System i Navigatorのオプションと比べて、大きな利点と小さな欠点があります。

結果セットでデータを編集できるようにするために、SQL SELECTステートメントを入力し、そのステートメントの最後にFOR UPDATEを追加します。たとえば、

select * from employee for update;

結果セットは、いつものように、「SQL スクリプトの実行」ウィンドウの下部のパネル(設定によっては別のウィンドウ)に表示されます。

ACS

後は、結果セット内のセルをダブルクリックするだけで、セルの内容が編集可能になります。

ACS

このアプローチで得られる大きな利点は、結果セットは、編集用で、selectステートメントがベースになっているということです。このことは、表全体を編集するのとは対照的に、表内の任意のデータの一部分(列や行)を編集できるということを意味します。

select empno, firstnme, lastname
from employee
where workdept = 'D11'
for update;
ACS

小さな欠点というのは、行を挿入または削除する場合に、SQL INSERTまたはDELETEステートメントを使用する必要がある点です。

結局のところ、この編集オプションは一歩前進だと私は思います。

PAGE TOP