私はSQLを初めて使っていますが、jQuery $(document).readyステートメントでjavascriptを使用してhtml5 sqlストレージにデータベースを設定しようとしています。私はChromeとFirefoxでテストしていますが、Firefoxはまったく動作しません。私がChromeで持っている問題は、静的な値であればデフォルト値を設定できますが、試してみると物事はうまくいきません、私は実際には毎回その関数を呼びたいときに、このコードは一度だけデフォルトの関数を呼び出すと思います。しかし、私がしようとすると、ErrorDB関数が呼び出されます。 はここのコードです:私はそれ私が間違ったデータ型だけでなく、いくつか他のものを持っていたことである問題の解決、のようなものを発見したjavascriptの関数を使用するsqlカラムのデフォルト値
$(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')));");
あなたは技術的には、時間がSQLのための規格であるGMTになることを意味し、それを残し、「localtimeの」を必要としません。しかし、私はまだ一般的にどのようにユーザー定義関数をデフォルト値にするかをまだ分かりませんが、これはまだ私の主な質問です。
公開アプリケーションですか? – hsz