複数レコードの一括更新(Web API)

Forguncyでは複数レコードの一括更新を行うための以下のメソッドを提供しています。

Forguncy.modifyTablesData( modifyData, successCallback, errorCallback);

指定した更新レコード情報に基づき、複数レコードを一括更新します。更新は新規追加、編集、削除の3つの処理すべてを含むことが可能です。

パラメーター

modifyData

{ [tableName: string]: ModifyData }

更新レコードの情報を持つModifyDataオブジェクトを指定します。

successCallback

Type: Function

レコードの一括更新が成功したときに実行するコールバック関数を指定します。

errorCallback

Type: Function( String errorMessage )

レコードの一括更新が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。
なお、テーブル名の指定に誤りがあるなどのデータベースアクセスにおける構文エラーについては、本コールバック関数を使用してエラーをハンドルすることはできません。そのような場合のエラー内容については、HTTP応答ヘッダーの内容を確認する必要があります。

 

interface ModifyData {

    addRows: [{ [primaryColumnName: string]: Object }];

    editRows: [{ primaryKey: { [primaryColumnName: string]: Object } }, { values: { [primaryColumnName: string]: Object } }];

    deleteRows: [{ primaryKey: { [primaryColumnName: string]: Object } }];

}

プロパティ

addRows

[{ [columnName: string]: Object }]

追加したいフィールド名と値を指定します。
※プロパティ名にフィールド名、値にそのフィールドの値を持つオブジェクトを指定します。

editRows

[{ primaryKey: { [primaryColumnName: string]: Object } }, { values: { [primaryColumnName: string]: Object } }]

更新対象のレコードにおいて一意となるフィールド名と値、および更新対象のフィールド名と値を指定します。
※プロパティ名にフィールド名、値にそのフィールドの値を持つオブジェクトを指定します。
※指定するフィールドが必ずしもデータベース上で一意制約を持つフィールドである必要はありません。

deleteRows

[{ [primaryColumnName: string]: Object }]

削除対象のレコードにおいて一意となるフィールド名と値を指定します。
※プロパティ名にフィールド名、値にそのフィールドの値を持つオブジェクトを指定します。
※指定するフィールドが必ずしもデータベース上で一意制約を持つフィールドである必要はありません。

サンプルコード

テーブル1とテーブル2にレコードを追加します。

Forguncy.modifyTablesData({
     テーブル1: {
         addRows: [
             {
                 フィールド1: "aa1",
                 フィールド2: "aa2",
             },
             {
                 フィールド1: "bb1",
                 フィールド2: "bb2",
             },
         ]
     },
     テーブル2: {
         addRows: [
             {
                 フィールド1: "aa11",
                 フィールド2: "aa22",
             },
             {
                 フィールド1: "bb11",
                 フィールド2: "bb22",
             },
         ]
     }
});

テーブル1とテーブル2からそれぞれ2レコードずつ削除します。

Forguncy.modifyTablesData(
{
     テーブル1: {
         deleteRows: [
             { ID: 2 },
             { ID: 3 },
         ]
     },
     テーブル2: {
        deleteRows: [
            { ID: 3 },
            { ID: 4 },
        ]
    }
});

テーブル1とテーブル2の複数件のレコードを一括更新します。

Forguncy.modifyTablesData(
{
    テーブル1: {
        editRows: [
            {
                primaryKey:
                {
                    ID: 2
                 },
                 values: {
                     フィールド1: "xxx1",
                     フィールド2: "xxx2"
                 }
            },
            {
                 primaryKey:
                 {
                     ID: 3
                 },
                 values: {
                     フィールド1: "xxx3",
                     フィールド2: "xxx4"
                 }
             },
         ]
     },
     テーブル2: {
         editRows: [
             {
                 primaryKey:
                 {
                     ID: 3
                 },
                 values: {
                     フィールド1: "xxx5",
                     フィールド2: "xxx6"
                 }
             },
             {
                 primaryKey:
                 {
                     ID: 4
                 },
                 values: {
                     フィールド1: "xxx7",
                     フィールド2: "xxx8"
                 }
             },
         ]
     }
});

テーブル1に対して複数レコードの追加、複数レコードの削除、複数レコードの更新を一括で行います。

Forguncy.modifyTablesData(
{
    テーブル1: {
         addRows: [
             {
                 フィールド1: "aa1",
                 フィールド2: "aa2",
             },
             {
                 フィールド1: "bb1",
                 フィールド2: "bb2",
             },
         ],
         deleteRows: [
             {
                 ID: 2
             },
             {
                 ID: 3
             },
         ],
         editRows: [
             {
                 primaryKey:
                 {
                     ID4
                 },
                 values:
                 {
                     フィールド1: "xxx",
                     フィールド2: "xxx2"
                 }
             },
             {
                 primaryKey:
                 {
                     ID: 5
                 },
                 values:
                 {
                     フィールド1: "xxx3",
                     フィールド2: "xxx4"
                 }
             },
         ]
     }
});