日期:2014-05-16  浏览次数:20567 次

javax.microedition.rms.InvalidRecordIDException异常,J2ME数据库问题。
点击右边红色标题查看本文完整版:javax.microedition.rms.InvalidRecordIDException异常,J2ME数据库问题。

[wtkrun] javax.microedition.rms.InvalidRecordIDException
? [wtkrun] at javax.microedition.rms.RecordStore.findRecord(+86)
? [wtkrun] at javax.microedition.rms.RecordStore.getRecord(+22)
? [wtkrun] at com.fastmobile.crake.model.ByteDatabase.getRecord(+13)
? [wtkrun] at com.fastmobile.crake.model.ContactDatabase.put(+123)
? [wtkrun] at com.fastmobile.crake.model.ContactDatabase.putFromNetwork(+29)
? [wtkrun] at com.fastmobile.crake.controller.AddressBookHandler.parseAddrResponse(+825)
? [wtkrun] at com.fastmobile.crake.controller.AddressBookHandler.handleAddrBookResponse(+23)
? [wtkrun] at com.fastmobile.crake.controller.AddressBookHandler.handleServerMessage(+90)
? [wtkrun] at com.fastmobile.crake.controller.MessageDispatcher.dispatchMessage(+150)
? [wtkrun] at com.fastmobile.crake.controller.MessageDispatcher.handleExtSvcMessage(+22)
? [wtkrun] at com.fastmobile.crake.controller.MessageDispatcher.handleExtSvcFragment(+210)
? [wtkrun] at com.fastmobile.crake.controller.MessageDispatcher.handleExtSvcMessage(+11)
? [wtkrun] at com.fastmobile.crake.controller.MessageDispatcher.run(+34)
?
? 查了一下资料,一般情况下是当记录被删除的时候会报这个错。可是实际代码
?
? synchronized (m_store)
? {
? boolean isUpdate = m_store.findRecord(I_ADDR_ID, (byte) 4, id);
? if (isUpdate)
? {
? oldDetails = new ContactDetails(m_store.getRecord(), m_store.getDataLength());
? else
? oldDetails=null;
? }
? }
?
? 已经被锁定了,而且确实没有任何删除操作在别的进程中,所以不知道为什么总是抛出这个错,请不吝赐教!

------解决方法--------------------
它报的是无效的记录号,那就看看记录号有没有问题