0

我正在使用 PhoneGap 开发相机应用程序。

我想要完成的事情是,当我的应用程序拍照并将图片存储在应用程序目录中时,我想在数据库中插入一个条目,其中包含文件名、路径和上传的标志条目。

我很难做到这一点。而且我不确定问题出在哪里。

用于创建数据库和表然后插入条目的代码如下所示。在文件已经保存在应用程序目录中后,我调用“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。

请看看这个。我是移动开发的新手,从现在开始我就一直坚持这一点。

提前致谢

4

2 回答 2

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);
}

但是,此方法不会像您期望的那样工作,因为您正在创建提供该事务的第二个数据库,然后查询第一个数据库的表。

下面是完整的源示例,它在两个数据库中创建了两个具有相同表的数据库

https://gist.github.com/3058562

于 2012-07-06T07:14:03.843 回答
0

对phonegap不太了解,但是create table语句似乎缺少某些类型。

还有这一行:

tx.executeSql('INSERT INTO taukytb (name, path, uploaded) VALUES (filename, filepath, 0)');

什么是文件名?

于 2012-07-05T23:40:18.327 回答