2014-01-14 23 views
0

我有一個數據庫這個樣子的SQL鈦使用SQLite

Database

我試圖做一些SQL查詢

function getPageByMdl(modul) { 
    var sql = "SELECT * FROM Halaman WHERE ModulLayanan = '"+modul+"' ORDER BY Urutan ASC"; 
    var results = []; 
    var sqlResultSet = db.execute(sql); 
    while (sqlResultSet.isValidRow()) { 
     results.push({ 
      namahalaman : sqlResultSet.fieldByName('NamaHalaman') 
     }); 
     sqlResultSet.next(); 
    } 

    sqlResultSet.close(); 
    return results; 
} 

得到NamaHalaman然而結果長度總是給我0,儘管你可以看到它有2個值。當我嘗試運行

var sql = "SELECT Distinct ModulLayanan FROM Halaman Order ASC"; 

它只能從它檢舉系統數據庫返回的第一個值的另一個問題也發生。

哦,這裏是我的顯示結果

function loadDetailModule() { 
    data = getPageByMdl(modulTemp); 
    if (data.length > 0) { 
     var tableData = []; 
     //get through each item 
     for (var i = 0; i < data.length; i++) { 
      var detailmodul = data[i]; 

      //create table row 
      var row = Titanium.UI.createTableViewRow({ 
       dataIndex : i, 
       _title : detailmodul.namahalaman, 
       hasChild : true, 
       className : 'detailmodul_halaman', 
       filter : detailmodul.namahalaman, 
       height : 70, 
       backgroundColor : '#fff', 

      }); 

      //title label for row at index i 
      var titleLabel = Titanium.UI.createLabel({ 
       text : detailmodul.namahalaman, 
       font : { 
        fontSize : 14, 
        fontWeight : ' bold' 
       }, 
       left : 70, 
       top : 10, 
       height : 50, 
       width : 210, 
       color : '#232', 
       dataIndex : i 
      }); 

      row.add(titleLabel); 

      //add our little icon to the left of the row 
      var iconImage = Titanium.UI.createImageView({ 
       image : 'img/eggcooking.png', 
       width : 50, 
       height : 50, 
       left : 10, 
       top : 10 
      }); 

      row.add(iconImage); 

      //add the row to data array 
      tableData.push(row); 
     } 
     // set the data to tableview's data 
     detailModuleTable.data = tableData; 
     detailModuleTable.show(); 
    } else { 
     detailModuleTable.hide(); 
    } 
} 

預先感謝您

回答

0

問題是因爲當你運行你的應用程序鈦不會刷新你的數據庫功能。

你需要的是:1。 卸載應用程序模擬器 或 2.您可以更改數據庫名稱

Titanium.Database.install('SLTemp.sqlite', 'SLTemp1'); 
var db = Ti.Database.open('SLTemp1'); 

Titanium.Database.install('SLTemp.sqlite', 'SLTemp'); 
var db = Ti.Database.open('SLTemp');