Я новичок в SQL, но я пытаюсь настроить базу данных в хранилище html5 sql, используя javascript в операторе jquery $ (document) .ready.Я тестировал в Chrome и Firefox, но Firefox вообще не работает, и проблема, с которой я столкнулся в Chrome, заключается в том, что я могу просто установить значение по умолчанию, если оно статическое, но когда я пытаюсьиспользование функции, дела обстоят не так хорошо, я думаю, что этот код вызывает функцию по умолчанию только один раз, когда я на самом деле хочу, чтобы она каждый раз вызывала функцию.Однако, когда я пытаюсь это сделать, вызывается функция ErrorDB.вот код:
$(document).ready(function()
{
var db;
try{if(window.openDatabase){
db =openDatabase("fetchnotes", "1.0","fetchnotesDB",1000000);
if (!db) {alert("failed to load database on disk"); return;};
}
else{
alert("could not open database.");
return;
}
}catch(err){alert("error "+err); return;}
db.transaction(initializeDB, errorDB);
});
function initializeDB(tx){
tx.executeSql('Drop TABLE IF EXISTS NOTES');
tx.executeSql('CREATE TABLE IF NOT EXISTS'+
' NOTES(ID int primary key,NoteText, LastModified Date NOT NULL DEFAULT "'
+defaultLastModified()+ '")');
tx.executeSql('INSERT INTO NOTES (ID, NoteText) VALUES (1, "make a better database") ');
}
function errorDB(tx,err)
{
alert("error "+err);
}
function defaultLastModified()
{
var result= new Date();
return result;
}
Хорошо, я нашел что-то из решения проблемы, которое заключается в том, что у меня был неправильный тип данных, а также несколько других вещей.исправленный код находится здесь:
tx.executeSql("CREATE TABLE IF NOT EXISTS"+
" NOTES(ID INTEGER PRIMARY KEY,NoteText TEXT ," +
"LastModified TIMESTAMP DEFAULT (datetime('now','localtime')));");
вам технически не нужно 'localtime', если его опустить, это означает, что время будет в GMT, которое является стандартным для SQL.Тем не менее, я до сих пор не знаю, как вообще сделать пользовательскую функцию значением по умолчанию, и это мой главный вопрос.