function onDeviceReady() {
var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS tbl_Excercise (ExId INTEGER PRIMARY KEY AUTOINCREMENT ,ExName ,ExDescription ,ExPreCondition ,ExImage ,IsActive INTEGER,AddDate DATE)');
tx.executeSql('Delete from tbl_Excercise');
tx.executeSql('INSERT INTO tbl_Excercise VALUES (1,"Excercise 1","Description 1","Pre Condition 1","image/image1.png",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise VALUES (2,"Excercise 2","Description 2","Pre Condition 2","image/image2.jpg",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise VALUES (3,"Excercise 3","Description 3","Pre Condition 3","image/image3.jpg",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise VALUES (4,"Excercise 4","Description 4","Pre Condition 4","image/image4.jpg",1,"12/09/2012 01:00:00")');
第二个问题如何检索最大ID
Javascript代码
function NewExcercise(){
var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
db.transaction(GetNewExId, errorCB);
}
var GetNewExId=function(tx)
{
var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
var sql = "SELECT MAX(ExId)+1 as ExId FROM tbl_Excercise";
tx.executeSql(sql, [], ReturnNewId, errorCB);
return window.localStorage.getItem('NewExId')
}
var ReturnNewId = function(transaction, results) {
try{
var row = results.rows.item(i);
window.localStorage.setItem('NewExId', row['ExId']);
}
catch(e){
alert(e);
}
}
答案 0 :(得分:1)
您在CREATE TABLE语法中有错误,您需要为所有表字段定义数据类型
试试这句话,
tx.executeSql('CREATE TABLE IF NOT EXISTS tbl_Excercise (ExId INTEGER PRIMARY KEY AUTOINCREMENT ,ExName TEXT ,ExDescription TEXT ,ExPreCondition TEXT ,ExImage BLOB ,IsActive INTEGER,AddDate DATE)');