IndexedDB由id更新

时间:2013-02-10 17:01:18

标签: indexeddb

我正在尝试更新我的indexedDB记录但是我收到此错误

  

DataError:提供给操作的数据不符合要求。   源文件

我已经尝试this但是没有工作

这是我的功能:

function updNotes(text, timestamp, blob)
{
var obj = {text: text, timestamp: timestamp};
if (typeof blob != 'undefined')
obj.image = blob;
store = getObjectStore("notes", 'readwrite');
objKeyRange = IDBKeyRange.only(+objtoedit);
req = store.openCursor(objKeyRange);
req.onsuccess = function(evt){
  var cursor = evt.target.result;
  console.log(cursor.key);
  //do the update
  var objRequest = cursor.update(obj);
  objRequest.onsuccess = function(ev){
    console.log('Success');
    };
  objRequest.onerror = function(ev){
    console.log('Error');
    };
  };
  req.onerror = function(evt){
    console.log('Error');
  };

任何人都可以帮我解决这个问题吗?

祝你好运

1 个答案:

答案 0 :(得分:0)

我弄清楚如何做到这一点。 这个功能解决了我的问题。

function updNotes(id, text, timestamp, blob)
{
console.log(id);
store = getObjectStore("notes", 'readwrite');
req = store.get(+id);
req.onsuccess = function(evt){
  var data = evt.target.result;
  data.text = text;
  data.timestamp = timestamp;
  if (typeof blob != 'undefined')
  data.image = blob;
  //do the update
  var objRequest = store.put(data);
  objRequest.onsuccess = function(ev){
    console.log('Success in updating record');
    };
  objRequest.onerror = function(ev){
    console.log('Error in updating record');
    };
  };
  req.onerror = function(evt){
    console.log('Error in retrieving record');
  };


}