Web sql 错误“数据库的当前版本和‘oldVersion’参数不匹配”
我正在尝试运行这些函数集:
function erorr(e) {
// error getting database
alert(e.message);
}
window.onload = function() {
prepareDatabase(erorr);
};
function prepareDatabase(error) {
return openDatabase('tasks13', '', 'Offline task storage', 3*1024*1024, function (db) {
db.changeVersion('', '1.0', function (t) {
t.executeSql('CREATE TABLE tasks (id, detail,status)');
}, error);
});
}
但是,运行此函数后,我收到错误当前版本的数据库和“oldVersion”参数不匹配
。 不知道我在这里做错了什么。
I am trying to run these set of functions:
function erorr(e) {
// error getting database
alert(e.message);
}
window.onload = function() {
prepareDatabase(erorr);
};
function prepareDatabase(error) {
return openDatabase('tasks13', '', 'Offline task storage', 3*1024*1024, function (db) {
db.changeVersion('', '1.0', function (t) {
t.executeSql('CREATE TABLE tasks (id, detail,status)');
}, error);
});
}
But, after running this I get an error current version of the database and 'oldVersion' argument do not match
.
Not sure what wrong I am doing here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正确的代码:
虽然可以打开 WebSQL 数据库的任何可用版本(通过传递空字符串作为版本标识符),但您需要在调用
db.changeVersion
时显式指定数据库的当前版本。数据库的当前版本以db.version
形式提供。规范是这样说的:
来自 http://www.w3.org/TR/webdatabase/#asynchronous-数据库API
Correct code:
While it's possible to open any available version of a WebSQL db (by passing an empty string as version identifier), you need to explicitly specify the current version of the db when calling
db.changeVersion
. The current version of the db is made available asdb.version
.This is what the specification says:
From http://www.w3.org/TR/webdatabase/#asynchronous-database-api
我遇到了同样的错误。
我没有使用 db.changeVersion 而是使用了以下更命令式的逻辑:
希望它也适合您。
/弗雷德里克
I ran into the same error.
I refrained from using db.changeVersion and used the following more imperative style of logic instead:
Hope it works for you as well.
/Fredrik