3

如何查詢具體天氣是否存在或不存在於我的數據庫執行查詢之前?鈦:如何檢查表是否存在或不存在於數據庫中?

例子:我要查天氣詳細表存在或不InfoDB

我想要做一些事情,如: -

var createDB = Titanium.Database.open('InfoDB'); 
if(Detail exists in InfoDB) 
    then 
    var rs = createDB.execute('SELECT * FROM Detail'); 

謝謝...

+0

db.execute(「CREATE TABLE IF NOT EXISTS你可以做一些這樣的事創造我想要的執行查詢前檢查表,而不是一個解決方案,但小費 – Triode 2012-02-29 13:40:44

回答

10

試試這個:

var createDB = Titanium.Database.open('InfoDB'); 

var result = createDB.execute('SELECT name FROM sqlite_master WHERE type="table" AND name="your table name"'); 

if(result.isValidRow()) { 
    //table found 
    var rs = createDB.execute('SELECT * FROM Detail'); 
} 
result.close(); 
+0

! – Maulik 2012-02-29 14:28:42

+0

將首先執行實際上是獲取你的表從sqlite數據庫腳本'sqlite_master'。 – 2012-02-29 14:36:48

3

解決!我使用替代方式。我用try...catch代替。

var createDB = Titanium.Database.open('InfoDB'); 
try 
{ 
    var rs = createDB.execute('SELECT * FROM Detail'); 
} 
catch(err) 
{ 
    alert(err) 
} 
0

如果你想檢查創建表

db.execute('CREATE TABLE IF NOT EXISTS Detail (..columns..)') 

或刪除表

db.execute('DROP TABLE IF EXISTS Detail') 

避免表存在或表中沒有存在的錯誤了。

相關問題