Javascript 钛移动-未捕获错误:无此类表格

Javascript 钛移动-未捕获错误:无此类表格,javascript,android,sql,sqlite,titanium,Javascript,Android,Sql,Sqlite,Titanium,我正经历着一段痛苦的时光,试图弄明白为什么我总是犯这个错误。我已经搜索了这个论坛和其他论坛,似乎没有任何答案能够帮助我,所以我会在这里问 我正在尝试使用Tianium为Android创建一个基本的照片目录应用程序。目录信息存储在sqlite数据库中 我可以创建数据库OK-我可以在一个窗口中访问一些信息。然后,当我转到另一个窗口并尝试从表中获取更多信息时,会出现错误: 未捕获错误:编译时没有这样的表:照片:,选择 见下面的代码: 这是从app.js打开的第一个窗口 表在这里显示得很好-没有错误 /

我正经历着一段痛苦的时光,试图弄明白为什么我总是犯这个错误。我已经搜索了这个论坛和其他论坛,似乎没有任何答案能够帮助我,所以我会在这里问

我正在尝试使用Tianium为Android创建一个基本的照片目录应用程序。目录信息存储在sqlite数据库中

我可以创建数据库OK-我可以在一个窗口中访问一些信息。然后,当我转到另一个窗口并尝试从表中获取更多信息时,会出现错误:

未捕获错误:编译时没有这样的表:照片:,选择

见下面的代码:

这是从app.js打开的第一个窗口

表在这里显示得很好-没有错误

// create var for the currentWindow
var currentWin = Ti.UI.currentWindow;

// set the data from the database to the array
//function setData() {  

// create table view
var tableview = Ti.UI.createTableView({
});

//var db = Ti.Database.open('catalogue');
//db.remove();
var db = Ti.Database.install('catalogue.sqlite','photos');

var rows = db.execute('SELECT * FROM photos GROUP BY title');

// create the array
var dataArray = [];


while(rows.isValidRow()) {

    var title = rows.fieldByName('title');
    var id = rows.fieldByName('id');

    dataArray.push({title:title, id:id, url:'catalogue_detail.js'});
    rows.next();
}

tableview.setData(dataArray);

// add the tableView to the current window
currentWin.add(tableview);



tableview.addEventListener('click', function(e){

    if (e.rowData.url)
    {
        var win = Ti.UI.createWindow({
            id:e.rowData.id,
            title:e.rowData.title,
            url:e.rowData.url

        });

        win.open();
    }
});


// call the setData function to attach the database results to the array
//setData();
然后从上面打开catalog_detail.js,我得到了错误

目录_detail.js

var win = Titanium.UI.currentWindow;

var id = win.id

var tableview = Titanium.UI.createTableView({
});

var db = Titanium.Database.open('catalogue.sqlite');//I have chanegd this to 'photos' and I get the same error

var sql = db.execute('SELECT title, location, photographer FROM photos where id="' + id + '"');

var title = sql.fieldByName('title');


var location = sql.fieldByName('location');
var photographer = sql.fieldByName('photographer');  


// create the array
var dataArray = [];


while(sql.isValidRow()) {

    var title = sql.fieldByName('title');
    var location = sql.fieldByName('location');
    var photographer = sql.fieldByName('photographer');

    dataArray.push({title:title, location:location, photographer:photographer});
    sql.next();
}

tableview.setData(dataArray);


win.add(tableview);
所以我数据库中名为“photos”的表在一个窗口中打开,然后我在尝试打开同一个数据库时出错

我已经卸载了应用程序,重新创建了数据库,重命名了表等,但仍然是相同的错误

我相信这是一个简单的事情,我错过了,但我很困惑

谢谢你的帮助


JC

尝试绝对路径:
Ti.Database.open('catalog.sqlite')
Ti.Database.install('/catalog.sqlite')

还记得在从查询检索所有数据时关闭与数据库的连接:

sql.close();
db.close();

我注意到在工作代码段中有“var db=Ti.Database.install('catalog.sqlite','photos');”但在未工作代码段中,db设置为“var db=tianium.Database.open('catalog.sqlite');“-这有什么关系吗?谢谢-这很有帮助,而且我对其他问题一无所知。。。再次感谢。