我有一個可怕的時間試圖找出爲什麼我不斷收到此錯誤。我搜索了這個和其他論壇,似乎沒有答案能夠幫助,所以我會問這裏。鈦手機 - 未捕獲錯誤:沒有這樣的表
我想爲使用Titanium的Android創建一個基本的照片目錄應用程序。目錄信息是在sqlite數據庫中發生的。
我可以創建數據庫確定 - 我可以在一個窗口中訪問它的一些信息。當我然後去到另一個窗口,並嘗試從表進一步信息它給我的錯誤:
Uncaught error: no such table: photos:, while compiling SELECT..........
見下面的代碼:
這是從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();
我再從上面開catalogue_detail.js和我得到的錯誤
個catalogue_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);
所以在我的數據庫中的表名爲「照片」在一個窗口中打開然後我得到試圖打開同一個數據庫中的錯誤?
我已經卸載應用程序,重新創建數據庫,重命名的表等,但仍是同樣的錯誤......
我相信這是我缺少一個簡單的事情,但我很困惑!
感謝您的任何援助。
JC
我在工作注意片斷你有「變種DB = Ti.Database.install(‘catalogue.sqlite’,」相片');」但在unworking片段中,db設置爲「var db = Titanium.Database.open('catalogue.sqlite');」 - 這可能有任何相關性? –