extjs-gpl
Version:
GPL licensed version of Sencha Ext JS
53 lines (45 loc) • 1.62 kB
JavaScript
/**
* @private
*/
Ext.define('Ext.device.storage.HTML5.Database', {
requires: ["Ext.device.storage.HTML5.SQLStatement"],
db: null,
constructor: function(config) {
this.db = window.openDatabase(config.name, config.version, config.displayName, config.size);
},
getVersion: function() {
if (this.db) {
return this.db.version;
}
// <debug>
Ext.Logger.warn('Database has not been opened before calling function #getVersion');
// </debug>
return null;
},
/**
* @param {String/String[]/Object/Object[]/SQLStatement/SQLStatement[]} sql SQL Command to run with optional arguments and callbacks
* @param {Function} success callback for successful transaction
* @param {Function} failure callback for failed transaction
*/
transaction: function(sql, success, failure) {
if (!this.db) {
// <debug>
Ext.Logger.warn('Database has not been opened before calling function #transaction');
// </debug>
return;
}
if (!Ext.isArray(sql)) {
sql = [sql];
}
var txFn = function(tx) {
Ext.each(sql, function(sqlStatement) {
if (Ext.isString(sqlStatement)) {
tx.executeSql(sqlStatement);
}else if(Ext.isObject(sqlStatement)) {
tx.executeSql(sqlStatement.sql, sqlStatement.arguments, sqlStatement.success, sqlStatement.failure);
}
});
};
this.db.transaction(txFn, failure, success);
}
});