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: