PhoneGap 中的数据库条目出现问题

Issue with database entry in PhoneGap.

本文关键字:问题 数据库 PhoneGap      更新时间:2023-09-26

我正在使用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"永远不会被调用,也不会调用错误CB。

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

提前致谢

我做了一些更改来使其工作。

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

对 phonegap 了解不多,但创建表语句似乎缺少某些类型。

还有这一行:

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

什么是文件名?