使用自动增量标识符更改数据

时间:2015-11-17 13:31:58

标签: indexeddb

发生的问题是,当我更改任何作为自动增量标识符的数据而不是更改并使用相同的标识符生效时,他创建另一个带有标识符和更改的数据的数据。他只能更改我选择的标识符的数据。

       var objectStorePC = db.transaction(["tbl_PESSOA_CELULA"], "readwrite").objectStore("tbl_PESSOA_CELULA");
          var requestPC = objectStorePC.get(vetorPessoa[i].key);
          requestPC.onerror = function(event) {
            console.log(event.target.error.message);
          };
          requestPC.onsuccess = function(event) {
            // Obter os valores antigos
            var data = requestPC.result;
            console.log(data);

            // atualizar algum dado
            data.FLG_IDENT_PESSO = $("#slc_VINCULO").val();

            console.log(objectStorePC);
            // Atulizar esse dado no banco
            var requestUpdatePC = requestPC.put(data);
            requestUpdatePC.onerror = function(event) {
              // Tratar erro
            };
            requestUpdatePC.onsuccess = function(event) {
              var w_codigo_celula = sessionStorage.getItem('codigo');
              $wrapper = document.querySelector('#membros');
              $wrapper.innerHTML = "";
              activate_page("#listar_MEMBROS");
              searchmembers(w_codigo_celula);
            };
          };



    TABLESS 01
--------------------
|CODIGO - COD 1    |
|NOME   - person 1 |
|TEXTO  - bababa   |
--------------------
      TABLESS 01
--------------------
|CODIGO - COD 2    |
|NOME   - person 1 |
|TEXTO  - aaaaaaa  |
--------------------

1 个答案:

答案 0 :(得分:3)

使用显式键调用put()作为更新记录的第二个参数。

var requestUpdatePC = requestPC.put(data, vetorPessoa[i].key);

密钥生成器仅在未传递显式密钥时使用。

(另外,请提出一个新问题而不是替换现有问题,即使问题已得到解答。这会使相关评论难以理解。)