2012-05-10 9 views
4

IOS5で電話ギャップ[cordova 1.7.0]でSQLiteを使用してdbを作成しようとしています。データの数を増やすと、クエリは失敗し、&はエラーを出力します。私はストレージAPIの手順に従ったので、何が問題なのか分かりません。私はデータベースのサイズを増やそうとしましたが、それでも動作しませんでした。PhonegapでのSQLITEクエリエラーSYNTAX_ERR

これは私のコードです:

function populateDB(tx) { 
tx.executeSql('DROP TABLE IF EXISTS SESSION'); 
tx.executeSql('CREATE TABLE IF NOT EXISTS SESSION (id unique, dayId, subject, Seq)'); 
tx.executeSql('INSERT INTO SESSION (id unique, dayId, subject, Seq) VALUES (1, 4, "English", 1)'); 
tx.executeSql('INSERT INTO SESSION (id unique, dayId, subject, Seq) VALUES (2, 1, "Math", 3)'); 
tx.executeSql('INSERT INTO SESSION (id unique, dayId, subject, Seq) VALUES (3, 2, "Social", 5)'); 
tx.executeSql('INSERT INTO SESSION (id unique, dayId, subject, Seq) VALUES (4, 6, "Science", 7)'); 
console.log('finished filling'); 
} 

function queryDB(tx) { 
tx.executeSql('SELECT * FROM SESSION', [], querySuccess, errorCB); //It doesn't come here 
} 

function querySuccess(tx, results) { 
// Doesn't come here too 
var len = results.rows.length; 
console.log("DEMO table: " + len + " rows found."); 
for (var i=0; i<len; i++){ 
    console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).dayId); 
} 
} 

function errorCB(err) { 
console.log('error x'); //Fails here 
console.log("Error processing SQL: "+err.code); 
} 

function errorQB(err) { 
console.log(' Query error x'); 
console.log("Error processing SQL: "+err.code); 
} 

function successCB() { 
var db = window.openDatabase("TimeTable", "1.0", "TimeTable" , 1000000); 
cosole.log('start of success'); 
db.transaction(queryDB, errorQB); 
console.log('success transaction'); //Didn't Success 
} 
function onDeviceReady() { 
var db = window.openDatabase("TimeTable", "1.0", "TimeTable", 1000000); 
db.transaction(populateDB, errorCB, successCB); 
} 

これは私のログです:

 [INFO] Error processing SQL: 5 //SYNTAX_ERR 

あなたは問題が何であるかを知っていますか? おかげ

答えて

3

は私が間違って何をしていたかを知っていた:

tx.executeSql('INSERT INTO SESSION (id ***unique***, dayId, subject, Seq) VALUES (1, 4, "English", 1)'); 

私も挿入ステートメントでタイプが書かれているべきではありません...ので、私はそれを削除したときに、それがうまく働きました。