Forguncy 10 オンラインヘルプ
アプリの開発 / ロジックの実装 / コマンド / コマンド(通常) / テーブルデータの更新
このトピックで
    テーブルデータの更新
    このトピックで

    ページのセルにデータ連結しているテーブルのフィールド値を更新、追加、削除または追加/更新をします。一回のコマンドの実行で、単一のテーブルを操作することも、複数のテーブルを一度に操作することもできます。データ連結していないフィールドでも、このコマンドで[非データ連結フィールド]を指定することでデータの更新、追加が可能です。削除処理は、データ連結の設定に関わらずレコード全体が削除されます。
    レコードに添付ファイルがある場合、レコードが削除されるときに添付ファイルも削除されます。

    リストビューにデータ連結している場合、そのテーブルはこのコマンドでは更新されません。リストビュー上のデータを更新したい場合には リストビューデータの操作コマンドを使用してください。

    詳細設定で[更新対象レコード]を変更しない限り、既定の対象レコードはカレントレコードです。カレントレコードはリストビューで選択されているレコードです。ページにリストビューが存在しない場合でも、遷移元ページのリストビューでいずれかのレコードが選択されていた場合、それがカレントレコードとなります。詳しくは リストビューとはにある「●リストビューの役割」を参照してください。

    なお、ページのいずれかのセルに「データの入力規則」を設定していた場合、本コマンドの実行時にその入力規則の検証処理が行われます。検証処理が通らない場合には、テーブルデータの更新は行われません。「データの入力規則」については、セルにデータ入力規則を設定するを参照してください。

    更新対象テーブルが単一

    以下の画像は単一のテーブルを更新・追加・削除・追加/更新する画面です。
    複数のテーブルのレコードを一回のコマンド実行で一度に操作したい場合は、「トランザクション処理を有効にする」かをクリックして画面を切り替えてください。

    更新対象テーブルが複数

    以下の画像は一回のコマンドで複数のテーブルを更新・追加・削除・追加/更新する画面です。
    実行中に何らかの理由で操作の1つが失敗した場合、このコマンド内で登録しているすべての処理をロールバックできます。もし、「テーブルデータの更新」コマンドを複数回実行した場合、何らかの理由で処理が失敗してもロールバックできるのは、そのコマンドで指定しているテーブルのみになります。複数テーブルの操作をトランザクションで管理したい場合は、1つの「テーブルデータの更新」コマンド内で指定してください。
    なお、ロールバックはデータベースの種類が混在していても正しく行われます(例:SQL ServerのテーブルとForguncyの内部データベースのテーブルが混在)。
    単一のテーブルのレコードを操作したい場合は、をクリックして画面を切り替えてください。
    をクリックすると更新対象のテーブルを増やせます。
    をクリックすると更新対象のテーブルを減らせます。
    をクリックすると、更新処理を行うテーブルの順番を移動できます。

    設定値

    処理の種類

    更新、追加、削除、追加/更新から選択します。選択した処理の種類により、ほかに必要となる設定が異なります。

    処理の種類が「追加/更新」の場合
    対象条件に合致するレコードが存在すればレコードを更新し、合致するレコードがなければレコードが追加されます。このとき更新対象のフィールドとレコードの一致条件となる対象条件を設定する必要があります。

    対象テーブル

    更新対象のテーブルを選択します。

    非データ連結フィールド

    ユーザーが入力する値とは別に、固定的な値やページ上に存在しない値を更新値とする場合(データが更新された日時を登録するために現在日時を更新値とするなど)は、ここで定義します。

    更新対象レコード

    データを更新するレコードを指定します。

    カレントレコード

    カレントレコードを選択すると、リストビューで選択しているレコードが更新の対象になります。ページにリストビューが存在しない場合でも、遷移元ページのリストビューでいずれかのレコードが選択されている場合、それがカレントレコードとして更新の対象になります。詳しくは リストビューとは にある「●リストビューの役割」を参照してください。

    特定レコード

    特定レコードを選択すると、「新しい条件」を指定できるようになります。この条件に一致するすべてのレコードが更新の対象になります。非データ連結のフィールドに入力した値をレコードに反映させたい場合など、これを選択することでレコードを更新できます。

    NULL値のクエリー動作:

    値に数式を設定した場合にその結果がNULLになる場合の動作を指定します。

    • 0件のレコード:NULLの場合はレコードを返しません。
    • すべてのレコード:NULLの場合はすべてのレコードを返します。
    • 値が空のレコード:NULLの場合はNULLまたは空のレコードを返します。

    ユーザー選択レコード

    リストビューで行ヘッダークリックによる選択か、行選択チェックボックスによる選択で選択されている行のレコードをすべて更新します。

    確認ダイアログを表示する

    レコード更新時に確認ダイアログを表示します。ダイアログに表示する文字列を指定できます。

    注意:確認ダイアログには、Microsoft Edgeを使用している場合にMicrosoft Edgeの仕様で「このページからのメッセージを非表示にする」と表示される場合があります。この表示がされた時にチェックボックスをチェックして「OK」ボタンをクリックすると、以降のForguncyの確認ダイアログが表示されなくなり、更新・追加・削除が行われなくなります。チェックボックスが表示された場合は、チェックしないようにしてください。チェックしてしまった場合は、ブラウザの再起動を行ってください。

    あるいは、この確認ダイアログを使用せずに、次の画像のように条件分岐コマンドの確認ダイアログを使用して、「はい」の場合にテーブルデータの更新コマンドを実行する方法もあります。この場合、上記のような「このページからのメッセージを非表示にする」と表示されることがないので、ユーザーが誤ってチェックしてしまいブラウザの再起動が必要になるといったことがなくなります。

    コマンド実行前にセルのデータ入力検証を行う

    コマンド実行時に「データの入力規則」の設定をもとにデータ入力検証を行います。

    処理の種類が「更新」または「追加」の場合[詳細設定を表示]をクリックすると設定することができ、既定でチェックされています。

    • チェックされている場合にコマンドを実行すると、データ検証が実行され、データ検証に合格した後のみコマンドが実行されます。
    • チェックしていない場合にコマンドを実行すると、データ検証は実行されずに直接コマンドが実行されます。

    連結データを最新の情報に更新する

    • 有効(既定):本コマンドの処理後、画面上の対象テーブルをデータ連結しているオブジェクト、またはすべてのビューと連結しているオブジェクトを再読み込みします。
    • 無効:本コマンドの処理後、画面上のすべてのオブジェクトは再読み込みされません。

    注意:データ連結したセルの再読み込みについて

    本設定が「有効」になっている場合、「更新対象レコード」の選択によりデータ連結したセルの再読み込み状況が異なります。

    更新対象レコード データ連結したセルの再読み込み
    カレントレコード 再読み込みされる
    特定レコード 再読み込みされない
    ユーザー選択レコード 再読み込みされる

    注意:添付ファイルの保存方法について

    • 添付ファイル型セル

    • 画像アップロード型セル

    • テーブルの「添付ファイル」データ型フィールド

    • テーブルの「画像」データ型フィールド

    上記データについて、「更新対象レコード」が「特定レコード」や「ユーザー選択レコード」を選択し、複数レコードにわたって同じファイルが保存される場合、ファイルの実態はレコードの行数分複製され、別のGUIDが割り振られ、保存されます。