我有这个代码,我已经缩短到我认为影响结果的最重要的位,但基本上我有关于字节的错误。我不确定为什么因为这个代码在不同的程序中工作,因为我借用了代码。这是为了使用检索按钮从记录存储中提取数据,然后在使用更新按钮进行更改时更新它,但我无法让它运行。
有人可以帮忙或指点我找一个有用的更新记录库教程吗?
感谢
private RecordStore rs;
Update = new Form("Update");
Update.addCommand(new Command("Home", Command.BACK, 0));
cmRetrieve = new Command("Retrieve", Command.SCREEN, 1);
cmUpdate = new Command("Update", Command.SCREEN, 2);
tfRecID = new TextField("Record ID:", "", 8, TextField.NUMERIC);
txtName = new TextField("Name of Event: ", null, 15, TextField.ANY);
Update.append(tfRecID);
Update.append(txtName);
Update.addCommand(cmRetrieve);
Update.addCommand(cmUpdate);
Update.setCommandListener(this);
String str;
byte bytes[];
int recID;
else
if (c.getLabel().equals("Retrieve"))
{
recID = Integer.parseInt(tfRecID.getString());
bytes = rs.getRecord(recID);
str = new String(bytes);
int idx = str.indexOf(";");
txtName.setString(str.substring(0, idx));
}
else
if(c.getLabel().equals("Update"))
{
recID = Integer.parseInt(tfRecID.getString());
str = txtName.getString() + ":";
bytes = str.getBytes();
rs.setRecord(recID, bytes, 0, bytes.length);
}
答案 0 :(得分:0)
http://developers.sun.com/mobility/midp/articles/databaserms/提供了一个关于RMS的好教程。
从我可以看到的不运行代码,传递给setRecord
的结束索引是不正确的。你需要改变:
rs.setRecord(recID, bytes, 0, bytes.length);
为:
rs.setRecord(recID, bytes, 0, bytes.length-1);
答案 1 :(得分:0)
我不认为这是一个问题。 rs.set Record(recID,bytes,0,bytes.length); 最后一个参数是字节长度