我正在使用PhoneGap开发相机应用程序。
我想要完成的事情是,当我的应用程序拍照并将图片存储在app目录中时,我想在数据库中插入一个条目,其中包含文件名,路径和上传的标志条目。
我在做这件事时遇到了麻烦。我不确定问题出在哪里。
用于创建数据库和Table然后插入条目的代码如下所示。在文件已保存在app目录中后,我调用“insertInTable”函数。
function insertInTable(name, path)
{
var db = window.openDatabase('taukydb', '1.0', 'Tauky Database', 200000);
db.transaction(populateDB, errorCB, successCB);
//db.transaction(successCB, errorCB, );
//return();
}
function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS taukytb (name UNIQUE, path, uploaded)');
tx.executeSql('INSERT INTO taukytb (name, path, uploaded) VALUES (filename, filepath, 0)');
}
// Transaction success callback
function successCB() {
alert("Hurrey!!!");
//this is just for testing
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(queryDB, errorCB);
}
function queryDB(tx) {
tx.executeSql('SELECT * FROM taukytb', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
var len = results.rows.length;
alert(len);
}
// Transaction error callback
function errorCB1(err) {
alert("Error 11111 processing SQL: "+err.code);
//console.log("Error processing SQL: "+err.code);
}
// Transaction error callback
function errorCB(err) {
alert("Error processing SQL: "+err.code);
//console.log("Error processing SQL: "+err.code);
}
当我运行此代码时,函数“succesCB”永远不会被调用,也不会调用errorCB。
请看看这个。我是移动开发的新手,从那时起我就一直坚持这一点。
提前感谢
答案 0 :(得分:1)
我做了一些改动以使其发挥作用。
tx.executeSql('INSERT INTO taukytb (name, path, uploaded) VALUES ("'+filename+'", "'+filepath+'", 0)');
此更改将调用successCB
,因为查询执行正常。
function successCB() {
alert("Hurrey!!!");
//this is just for testing
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(queryDB, errorCB);
}
function queryDB(tx) {
tx.executeSql('SELECT * FROM taukytb', [], querySuccess, errorCB);
}
然而,此方法无法正常工作,因为您正在创建第二个数据库,提供该事务但随后查询第一个数据库的表。
以下是完整的源代码示例,该示例在
中创建两个具有相同表的数据库答案 1 :(得分:0)
对phonegap不太了解,但是创建表语句似乎缺少某些类型。
这一行:
tx.executeSql('INSERT INTO taukytb (name, path, uploaded) VALUES (filename, filepath, 0)');
什么是文件名?