2012-07-05 77 views
0

我正在使用PhoneGap使用相機應用程序。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」永遠不會被調用,也不會調用errorCB。

請看看這個。我是手機開發新手,自從現在開始,我就一直堅持這一點。

感謝提前

+0

,只要貼上錯誤日誌和作罷答案馬上:)。雖然功能不叫完整的源代碼的例子。我需要檢查一些配額日誌... – 2012-07-06 05:19:09

回答

1

我已經做了很少的改變,使其工作。

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

0

不很瞭解的PhoneGap,但create table語句似乎缺乏某些類型。

而且這條線:

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

是什麼名?

+0

文件名和文件路徑是可變的,並且它們工作正常。 – 2012-07-05 23:59:11