SQLTransaction.executeSql()

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.');