Помогите с проблемой обновления RecordStore в java j2me? - PullRequest
0 голосов
/ 30 марта 2009

У меня есть этот код, который я сократил до самых важных битов, которые, по моему мнению, влияют на результат, но в основном у меня есть ошибка в отношении байтов. Я не уверен, почему, потому что этот код работает в другой программе, поскольку я позаимствовал код. Это предназначено для извлечения данных из хранилища записей с помощью кнопки поиска, а затем обновления их, когда с помощью кнопки обновления внесены изменения, но я не могу их запустить.

Может кто-нибудь помочь или указать мне полезное руководство по обновлению хранилища записей?

спасибо

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);

    }

Ответы [ 2 ]

0 голосов
/ 22 июня 2009

Не знаю, это проблема. rs.setRecord (recID, bytes, 0, bytes.length); последний параметр - длина байтов

0 голосов
/ 31 марта 2009

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...