【问题标题】:Jaydata indexedDb database creation issuesJaydata indexedDb 数据库创建问题
【发布时间】:2013-05-10 09:04:08
【问题描述】:

我在 jayData 上有这个问题: 我尝试创建这个简单的数据库:

var x=$data.Entity.extend("Person",
{
  ID: {type: "int", key:true, required: true},
  Name: {type: "string", required: true}
});

$data.EntityContext.extend("PersonDatabase",
{
  People: {type: $data.EntitySet, elementType: Person}
});

var DB1=new PersonDatabase({
  provider: 'webSql',
  databaseName:'DB1',
});

效果很好。但是当我简单地将数据库类型切换为 indexxedDb 时,它什么也没做。

var x=$data.Entity.extend("Person",
{
  ID: {type: "int", key:true, required: true},
  Name: {type: "string", required: true}
});

$data.EntityContext.extend("PersonDatabase",
{
  People: {type: $data.EntitySet, elementType: Person}
});

var DB1=new PersonDatabase({
  provider: 'indexedDb',
  databaseName:'DB1',
  version: 1
});

有什么想法吗?

【问题讨论】:

    标签: indexeddb web-sql jaydata


    【解决方案1】:

    在这段代码中只有一件事需要解决:ID 字段应该是计算的,而不是必需的。更改后,JayData 会自动为您生成 ID。

    var x=$data.Entity.extend("Person",
    {
        Id: {type: "int", key:true, computed: true},
      Name: {type: "string", required: true}
    });
    
    $data.EntityContext.extend("PersonDatabase",
    {
      People: {type: $data.EntitySet, elementType: Person}
    });
    
    var DB1=new PersonDatabase({ provider: 'indexedDb', databaseName:'DB1', version: 1 });
    
    DB1.onReady(function() {
        DB1.People.add({ Name: 'Jay Data'});
        DB1.saveChanges();
    });
    

    这能解决您的问题吗?

    【讨论】:

    • 很遗憾,没有。我尝试了完全相同的代码,但没有创建 indexeddb 数据库。当我查看变量 DB1 的内容时,我看到:PersonDatabase {lazyLoad: false, trackChanges: false, _entitySetReferences: Object, _storageModel: Array[1], _isOK: "Provider fallback failed!"…}。你有什么想法吗?
    • 尝试在 jaydata.js 之后包含 /jaydataproviders/IndexedDbProvider.js。
    • 一个问题:在什么浏览器中会发生这种情况?
    • 我想通了,我在同一页面上包含了 websql 和 indexeddb 数据库,删除了 websql 一个,数据库正常工作。但是,创建的数据库没有显示在 chrome->inspect element/resources 选项卡上,而我可以查询数据库并给出正确的结果。 @Robesz,我尝试了第一个,没有任何变化。二、浏览器是Google Chrome v26
    • 有时我忘记了必须单击“刷新 IndexedDb”才能在 Chrome 资源窗口中获取记录。这是标准的 Chrome 行为,在以舒适的方式检查 Web SQL 表后令人沮丧。右击->刷新Indexeddb后得到记录了吗?
    猜你喜欢
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多