SQLTransaction.executeSql() - виконує SQL запит.
SQLTransaction.executeSql(query, values, callback_function, error_function);
SQLTransaction.executeSql(query, values, callback_function( tx, result ){}, error_function(txe, e){});
SQLTransaction - об'єкт SQLTransaction.
query - рядок який містить SQL запит.
values - не обов'язково вказувати. Масив з значеннями які необхідно підставити у запиті SQL query.
callback_function - не обов'язково вказувати. Функція яка отримує результат виконання запиту SQL.
tx - параметр функції callback_function, об'єкт SQLTransaction.
result - параметр функції callback_function, об'єкт SQLResultSet.
error_function - функція яка викликається коли виникла помилка при виконанні SQL запиту. Рекомендовано використовувати функцію для помилки при транзакції transaction.
txe - параметр функції error_function, об'єкт SQLTransaction.
e - помилка SQLError яка паредається в якості параметру функції error_function.
executeSql() метод об'єкту SQLTransaction який виконує (відправляє SQL запит у SQLite) SQL запит.
SQL запит виконується асинхроно і при виконані запиту якщо є результат від запиту викликається функція callback_function, якій в якості параметра result передається результат виконання запиту.
SQL запит повинен мати синтаксис SQLite.
Не всі браузери підтримують.
Якщо вказаний параметр масив values тоді в запиті query під знаки "?" підставляються значення елементу масиву values
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
db.transaction(function(tx){
//створюємо таблицю test якщо її немає
tx.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');
tx.executeSql('INSERT INTO `test` (`name`, `text`) VALUES ("приклад executeSql","дата : '+Date()+'");');
//отримуємо усі дані таблиці test
tx.executeSql('SELECT * FROM `test` ORDER BY `id` DESC;',[],function(tx, res){
var s='<tr><th>id</th><th>name</th><th>text</th></tr>';
for(i=0;i<res.rows.length;i++)
s+='<tr><td>'+res.rows.item(i).id+'</td><td>'+res.rows.item(i).name+'</td><td>'+res.rows.item(i).text+'</td></tr>';
document.getElementById('test').innerHTML='<table border="1">'+s+'</table>';});
});
}
else alert('Ваш браузер НЕ підтримує openDatabase.');
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
db.transaction(function(tr){
//створюємо таблицю test, якщо її немає
tr.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');
tr.executeSql('SELECT * FROM `test`;',[],function(tx, res){
alert('tx= '+tx+' res= '+res);});
});
}
else alert('Ваш браузер НЕ підтримує openDatabase.');
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
db.transaction(function(t){
//створюємо таблицю якщо її немає
t.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');
t.executeSql('SELECT * FROM `test` ORDER BY `id` DESC LIMIT 0, 1;',[],function(tx, res){
alert('id : '+res.rows.item(0).id+' name: '+res.rows.item(0).name+' text: '+res.rows.item(0).text);});
});
}
else alert('Ваш браузер НЕ підтримує openDatabase.');
Максимальне значення стовбця id:
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
db.transaction(function(t){
//створюємо таблицю test якщо її немає
t.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');
//виводиво максимальне id
t.executeSql('SELECT max(`id`) AS "max_id" FROM `test`;', [], function(txr, r){
alert('максимальне id: '+r.rows.item(0).max_id); }, function(e){alert(e.message);});
});
}
else alert('Ваш браузер НЕ підтримує openDatabase.');
Приклад винекнення помилки в запиті SQL:
if(window.openDatabase){
var db = openDatabase("test","","test db", 2097152,function(tx){tx.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');});
db.transaction(function(t){
t.executeSql('INSE INTO `test` (`no_name`, `text`) VAL ("приклад executeSql", "'+Date()+'");',[],null, function(a,e){
alert('Error : '+e.code+' '+e.message);});
});
}
else alert('Ваш браузер НЕ підтримує openDatabase.');