UNPKG

jaydata

Version:

Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)

81 lines (72 loc) 3.26 kB
'use strict'; var _core = require('../../../../core.js'); var _core2 = _interopRequireDefault(_core); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _core2.default.Class.define('$data.dbClient.openDatabaseClient.OpenDbCommand', _core2.default.dbClient.DbCommand, null, { constructor: function constructor(con, queryStr, params) { this.query = queryStr; this.connection = con; this.parameters = params; }, executeNonQuery: function executeNonQuery(callback, tran, isWrite) { callback = _core2.default.PromiseHandlerBase.createCallbackSettings(callback); this.exec(this.query, this.parameters, callback.success, callback.error, tran, isWrite); }, executeQuery: function executeQuery(callback, tran, isWrite) { callback = _core2.default.PromiseHandlerBase.createCallbackSettings(callback); this.exec(this.query, this.parameters, callback.success, callback.error, tran, isWrite); }, exec: function exec(query, parameters, callback, errorhandler, transaction, isWrite) { // suspicious code /*if (console) { //console.log(query); }*/ this.connection.open({ error: errorhandler, success: function success(tran) { var single = false; if (!(query instanceof Array)) { single = true; query = [query]; parameters = [parameters]; } var results = []; var remainingCommands = 0; function decClb() { if (--remainingCommands == 0) { callback(single ? results[0] : results, transaction); } } query.forEach(function (q, i) { remainingCommands++; if (q) { tran.executeSql(query[i], parameters[i], function (trx, result) { var r = { rows: [] }; try { r.insertId = result.insertId; } catch (e) {} if (typeof r.insertId !== 'number') { // If insertId is present, no rows are returned r.rowsAffected = result.rowsAffected; var maxItem = result.rows.length; for (var j = 0; j < maxItem; j++) { r.rows.push(result.rows.item(j)); } } results[i] = r; decClb(trx); }, function (trx, err) { var _q = q; var _i = i; if (errorhandler) errorhandler(err); return true; }); } else { results[i] = null; decClb(); } }); } }, transaction, isWrite); } }, null);