morganestes
3/10/2012 - 1:03 AM

executeSql Bridge For PhonegapSQLitePlugin (because there are some differences between the WebSQL API and the plugin)

executeSql Bridge For PhonegapSQLitePlugin (because there are some differences between the WebSQL API and the plugin)

/* to use WebSQL or the SQLite plugin (https://github.com/davibe/Phonegap-SQLitePlugin) with the same function) */
executeSqlBridge: function(tx, sql, params, dataHandler, errorHandler) {
		var self = this;
		if (typeof self.db.dbPath !== 'undefined') {
			//Native SQLite DB with phonegap : https://github.com/davibe/Phonegap-SQLitePlugin/
			//this is a native DB, the method signature is different:

			var sqlAndParams = [sql].concat(params);

			var cb = function(res) {
				//in WebSQL : result.rows.item(0)
				//in the phonegap plugin : res.rows[0]
				res.rows.item = function(i) {
					return this[i];
				};

				//the result callback hasn't the tx param
				dataHandler(tx, res);
			};

			tx.executeSql(sqlAndParams, cb, errorHandler);
		} else {
			//Standard WebSQL
			tx.executeSql(sql, params, dataHandler, errorHandler);
		}
	},