Database.readTransaction() - створює транзакцію для Web SQL.
Database.readTransaction(functionTX, functionError);
Database.readTransaction(functionTX(obSQLTransaction){}, functionError(obSQLError));
functionTX - функція яка виконується при виконанні транзакції. Функція приймає паметр obSQLTransaction - об'єкт SQLTransaction.
obSQLTransaction - параметр функції, об'єкт SQLTransaction.
functionError - функція яка викликається якщо виникла помилка під час транзакції.
obSQLError - об'єкт помилки SQLError який передається в якості параметру.
readTransaction() метод об'єкту Database який створює транзакцію (групу послідовних операцій) для читання бази даних для Web SQL.
Метод transaction приймає в якості параметру функцію functionTX яка виконується під час транзакції.
Функція functionTX виконує запити до бази даних. Функція functionTX приймає параметр об'єкт SQLTransaction.
Якщо необхідні операції з базою даних для читання і запису тоді використовуйте метод transaction().
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
//створюємо таблицю test, якщо її немає
db.transaction(function(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS test(`id` INTEGER PRIMARY KEY, `name`, `text`);');});
db.readTransaction(function(tx){alert(tx);});
}
else alert('Ваш браузер НЕ пітримує openDatabase.');
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
// якщо нема таблиці test створюємо її
db.transaction(function(tx){tx.executeSql('CREATE TABLE IF NOT EXISTS `test` (`id` INTEGER PRIMARY KEY, `name`, `text`);');});
db.readTransaction(function(tx){
tx.executeSql('SELECT count(id) AS "count" FROM `test`;',[],function(tx, res){
alert('кількість записів у БД : '+res.rows.item(0).count);});
},function(er){alert(er.message);});
}
else alert('Ваш браузер НЕ пітримує openDatabase.');
Якщо виконати операцію к readTransaction для запису даних у БД виникає помилка:
if(window.openDatabase){
var db = openDatabase("mydb","","test db", 2097152);
db.readTransaction(function(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS `test` (`id` INTEGER PRIMARY KEY, `name`, `text`);'); //Error could not prepare statement (23 not authorized)
tx.executeSql('INSERT INTO `test` (`name`, `text`) VALUES ("приклад readTransaction","дата : '+Date()+'");');
},function(er){alert(er.message);});
}
else alert('Ваш браузер НЕ пітримує openDatabase.');