我在使用PhoneGap执行数据库示例时遇到问题。 http://docs.phonegap.com/phonegap_storage_storage.md.html#openDatabase
问题是,当我将示例运行到openDatabase并填充时,他会检索成功警报,但是当我尝试选择一个时它会给我一个错误:
"Error processing SQL:0"
我不知道数据库和Android手机有什么问题吗?我也尝试过在android的模拟器中,我一直都会遇到同样的问题。
你能帮助我吗?
以下是javascript代码:
现在我有以下代码:
document.addEventListener("deviceready", onDeviceReady, false);
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}
function errorCB(err) {
alert("Error processing SQL: " + err.code);
}
function successCB() {
alert("success!");
}
function queryDB(tx) {
tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
alert("i'm here =)");
}
function querySuccess(tx, results) {
// this will be empty since no rows were inserted.
console.log("Insert ID = " + results.insertId);
// this will be 0 since it is a select statement
console.log("Rows Affected = " + results.rowAffected);
// the number of rows returned by the select statement
console.log("Insert ID = " + results.rows.length);
}
function onDeviceReady() {
$(document).ready(function() {
$('#submit').click(function() {
alert('clicked');
var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
db.transaction(populateDB, errorCB, successCB);
db.transaction(queryDB, errorCB);
})
});
}
当我执行populate事务时仍然有Succes警告但queryDB的Alert有错误处理SQL:0。
提前致谢,
Elkas
PS:我也在使用jQuery Mobile
答案 0 :(得分:0)
您需要检查phonegap是否准备就绪:
document.addEventListener(“deviceready”,onDeviceReady,false);
答案 1 :(得分:0)
我刚刚做到了。这似乎是一个操作系统的问题。我对操作系统进行了降级,现在系统工作正常。
顺便说一下,我有OS X Lion和现在的OS X Snow Leopard。也许问题不是操作系统,而是现在修复它。当10.7.2出现时,我会再次升级并在此处给出答复,如果它正常工作。的问候,
Elkas
答案 2 :(得分:0)
我忘了更新这个问题。使用Lion 10.7.2,它的工作非常完美。
此致
Elkas