0
我有我的sqlite的以下代碼存儲從相機的名稱和圖像。我從Eclipse控制檯知道我正在獲取名稱和映像路徑。 console.log(addRecord)獲取名稱和圖像路徑,但我在事務行和queryDB函數上得到了「無法執行未定義的消息」消息,所以我想我的insert語句出錯了。此外,數據類型文本是否適用於imageURI?任何幫助讚賞。Sqlite插入語句沒有運行
function onDeviceReady() {
var db = window.openDatabase("database", "1.0", "Profiles", 5000);
if(db) {
console.log('The device is ready');
db.transaction(populateDB, errorCB, successCB, insertRecord); // only do stuff if db exists
}
else{
console.log('There is a problem');
}
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS USERS');//get rid of this once working?
tx.executeSql('CREATE TABLE IF NOT EXISTS USERS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username VARCHAR NOT NULL, imagePath TEXT)');
console.log('The table USERS is created');
}
//Insert the details
function insertRecord(tx) {
userName = document.getElementById('userName').value;
imagePath;
var addRecord = 'INSERT INTO USERS (username, imagePath) VALUES ("' + userName + '","' + imagePath + '")';
console.log(addRecord);
tx.executeSql(addRecord, [userName, imagePath], queryDB, errorCB);
}
// Query the database
function queryDB(tx) {
var getUsers = "SELECT * FROM USERS ORDER BY id ASC', [], querySuccess, errorCB";
db.transaction(function (tx) {
tx.executeSql(getUsers, [], querySuccess, queryFailure);
}, errorCB, successCB);
}
// Query the success callback
function querySuccess(tx, results) {
console.log("You are in the querysuccess function");
}
// Transaction error callback
function errorCB(err) {
console.log("Error processing SQL: " + err.code);
}
function queryFailure(err) {
console.log("Error processing SQL: " + err.code);
}
// Transaction success callback
function successCB() {
console.log('The db and table are working');
}
你不顯示調用'insertRecord'的代碼。 – DCoder
我已經包括,現在(我想!)。 – Inkers
這不是交易的工作方式。傳遞給'transaction'的第一個回調函數在完成事務提交後(或者已經回滾了一個錯誤)後,必須執行所有的工作。在代碼中調用insertRecord沒有辦法,你可以從別處調用它(可能來自表單提交中的事件處理程序)並且不傳遞事務。 – DCoder