从RecordStore中删除记录

时间:2014-01-26 13:09:15

标签: java-me midp rms

我想在每次使用此代码时从RecordStore中删除一条记录,这意味着第二次用户看到记录时他不应该看到已删除的记录,但这种情况不会发生。

在我的代码上测试了recordStore上创建的相同记录。 !

这些是我输入的记录。

_1_Elhadi_ _Sun Jan 26 01:00:00 GMT + 03:00 2014

_A_John_ Sun 1月26日01:00:00 GMT + 03:00 2014

_3_Smith_ Sun 1月26日01:00:00 GMT + 03:00 2014

public void deleteRecStore(String recID) {

try
 {
 recordStore.openRecordStore("recordStore", true)   ;
 }
 catch(Exception ex)
 {
 ex.printStackTrace();
 }
 try
 {

 RecordEnumeration e = recordStore.enumerateRecords(null,null,false);

 int found = -1;

 while (e.hasNextElement()) 
 {

 int id = e.nextRecordId();

 String next = new String(e.toString());

 int fee = next.indexOf("_", 1);

 **// These statements don't print anything** 

System.out.print("next.indexOf" +next.indexOf("_", 1));


System.out.println( "next.substring(1, fee)"+"\t" +next.substring(fee, 1));

System.out.println("recID"+"\t"+recID);

if (next.substring(1, fee).equals(recID))

{

found = id ;

}
  }
if (found == -1)

{

System.out.println("not found!");
}
else
{
recordStore.deleteRecord(found);
}
   }
 catch(Exception ex)
 {
 ex.printStackTrace();
 }
     }            

1 个答案:

答案 0 :(得分:0)

我认为错误是这一行:

String next = new String(e.toString());

看起来您正在将RecordEnumeration对象转换为String对象,并尝试在该字符串中查找记录ID。这不会让你走得太远。

尝试用此行替换该行,看看是否有帮助:

String next = new String(recordStore.getRecord(id));