数据库当前版本与' oldVersion '参数不匹配
web sql error "current version of the database and `oldVersion` argument do not match"
我正在尝试运行这些函数集:
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);
});
}
但是,在运行这个之后,我得到一个错误current version of the database and 'oldVersion' argument do not match
。我不知道我在这里做错了什么。
正确代码:
function prepareDatabase(error) {
return openDatabase('tasks13', '', 'Offline task storage', 3*1024*1024, function (db) {
db.changeVersion(db.version, '1.0', function (t) {
t.executeSql('CREATE TABLE tasks (id, detail,status)');
}, error);
});
}
虽然可以打开任何可用版本的WebSQL数据库(通过传递一个空字符串作为版本标识符),但在调用db.changeVersion
时需要显式指定数据库的当前版本。数据库的当前版本为db.version
。
说明如下:
从http://www.w3.org/TR/webdatabase/asynchronous-database-api检查changeVersion()方法的第一个参数的值是否与数据库的实际版本完全匹配。如果没有,则飞行前操作失败。
我也遇到了同样的错误。
我避免使用db。并使用以下更具命令式风格的逻辑:
this.db = window.openDatabase('myDb', '1.0', 'a comment', 5*1024*1024);
if (this.db) {
this.db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS myTable(...)',
[],
function(tx, rs) { },
function(tx, err) { alert("Error in create table occurred: " + err) }
);
});
}
希望它对你也有用。
/弗雷德里克·
相关文章:
- 高库存时期时间与时区不匹配
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- Javascript:图像与单选按钮的值不匹配
- 文本区域(jQuery)的结果不匹配
- 如果状态不匹配,则缩小为丑陋
- 角度指令控制器:参数不是函数,未定义
- WebSQL:处理SQL时出错:数量为''语句字符串中的s与参数计数不匹配
- Sys.ParameterCountException:参数计数不匹配
- 过滤器 AngularJS REST JSON 数据:错误:badcfg 响应与配置的参数不匹配
- 使用 q 参数时,名义不匹配
- 数据库当前版本与' oldVersion '参数不匹配
- 参数与构造函数中的私有参数不匹配
- JSHint表示“参数类型不匹配”;对于jQuery(这个)
- Javascript apply()参数不匹配
- 返回promise会导致“提供的参数不匹配”;在打印稿
- Typescript提供的参数不匹配调用目标的任何签名
- 参数/回调不匹配
- Spring Data JPA 接收参数值 [2] 与预期类型 [java.lang.String (n/a)] 不匹配
- “参数计数不匹配”发生在 asp.net 中按钮的单击事件上
- sAjaxSource URL 与输入的参数不匹配