Commit e2cdbf1e by Eric Fredricksen Committed by Eric Fredricksen

Better conformance to HTML5 for transaction()

parent 0b8aece4
...@@ -57,8 +57,10 @@ DatabaseSync.prototype.query = function (sql, bindings, callback) { ...@@ -57,8 +57,10 @@ DatabaseSync.prototype.query = function (sql, bindings, callback) {
function SQLTransactionSync(db, txCallback, errCallback, successCallback) { function SQLTransactionSync(db, txCallback, errCallback, successCallback) {
this.database = db; this.database = db;
this.executeSql = function(sqlStatement, arguments, callback) { this.executeSql = function(sqlStatement, arguments, callback) {
// TODO: Somehow SQL errors are being eaten var result = db.query(sqlStatement, arguments, callback)[0];
return db.query(sqlStatement, arguments, callback)[0]; result.rows = {item: function (index) { return result[index]; },
length: result.length};
return result;
} }
db.query("BEGIN TRANSACTION"); db.query("BEGIN TRANSACTION");
......
...@@ -6,6 +6,14 @@ var sqlite = require("./sqlite"); ...@@ -6,6 +6,14 @@ var sqlite = require("./sqlite");
posix.unlink('test.db'); posix.unlink('test.db');
function asserteq(v1, v2) {
if (v1 != v2) {
sys.puts(sys.inspect(v1));
sys.puts(sys.inspect(v2));
}
process.assert(v1 == v2);
}
var db = sqlite.openDatabaseSync('test.db'); var db = sqlite.openDatabaseSync('test.db');
db.query("CREATE TABLE egg (a,y,e)"); db.query("CREATE TABLE egg (a,y,e)");
...@@ -37,13 +45,20 @@ db.query("SELECT e FROM egg WHERE a = ?", [5], function (rows) { ...@@ -37,13 +45,20 @@ db.query("SELECT e FROM egg WHERE a = ?", [5], function (rows) {
}); });
db.transaction(function(tx) { db.transaction(function(tx) {
tx.executeSql("CREATE TABLE tex (t,e,x)"); tx.executeSql("CREATE TABLE tex (t,e,x)");
tx.executeSql("INSERT INTO tex (t,e,x) VALUES (?,?,?)", ["this","is","SQL"]); var i = tx.executeSql("INSERT INTO tex (t,e,x) VALUES (?,?,?)",
["this","is","Sparta"]);
asserteq(i.rowsAffected, 1);
var s = tx.executeSql("SELECT * FROM tex");
asserteq(s.rows.length, 1);
asserteq(s.rows.item(0).t, "this");
asserteq(s.rows.item(0).e, "is");
asserteq(s.rows.item(0).x, "Sparta");
}); });
db.query("CREATE TABLE test (x,y,z)", function () { db.query("CREATE TABLE test (x,y,z)", function () {
db.query("INSERT INTO test (x,y) VALUES (?,?)", [5,10]); db.query("INSERT INTO test (x,y) VALUES (?,?)", [5,10]);
db.query("INSERT INTO test (x,y,z) VALUES ($x, $y, $z)", {$x:1, $y:2, $z:3}); db.query("INSERT INTO test (x,y,z) VALUES ($x, $y, $z)", {$x:1, $y:2, $z:3});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment