Class: Insert

Insert

new Insert()

指定されたテーブルに対して、登録処理(INSERT)を行うクラス

このオブジェクトは自分でnewすることはありません。
h5.api.sqldb.open().insert()を呼び出すと、このクラスのインスタンスが返されます。

Source:

Methods

execute() → {Promise}

このオブジェクトに設定された情報からSQLステートメントとパラメータを生成し、SQLを実行します

実行結果は、Promiseオブジェクトのprogress()に指定したコールバック関数または、done()に指定したコールバック関数に、登録に成功したレコードのIDを持つ配列が返されます。

検索結果へのアクセスは以下のように実行します。

 db.insert('USER', {ID:10, NAME:'TANAKA'}).execute().done(function(rows) {
 rows.item(0).ID     // 検索にマッチした1件目のレコードのID
 rows.item(0).NAME   // 検索にマッチした1件目のレコードのNAME
 });
また、progress()に指定したコールバック関数の第二引数には、トランザクションオブジェクトが格納され、このオブジェクトを使用することで、トランザクションを引き継ぐことができます。
 db.select('STOCK', {ID:10, NAME:'ballA'}).execute().progress(function(rs, tx) { // ※1
 db.insert('STOCK', {ID:11, NAME:'ballB'}, tx).execute(); // ※2
 });
※1のprogress()で返ってきたトランザクション(tx)を、※2のinsert()の第三引数に指定することで、2つのdb.insert()は同一トランザクションで実行されます。 *

ver1.1.8からの変更点
execute()が返すPromiseオブジェクトのprogressコールバックの第二引数(TransactionalExecutorインスタンス)に、 Select/Insert/Del/Update/Sqlインスタンスをaddすることができるようになりました。

下記のサンプルコードは、tx.add()で追加したStatementインスタンスを、一番最初に実行したdb.insert()と同一トランザクションでSQLを実行します。

 db.insert('PRODUCT', {ID:11, NAME:'ballA'}).execute().progress(function(rs, tx) {
  tx.add(db.insert('PRODUCT', {ID:12, NAME:'ballB'})).execute().done(function() {
   alert('success');
  });
 });
Returns:
Promiseオブジェクト
Type
Promise
Source: