Проблема с RMS - PullRequest
       26

Проблема с RMS

1 голос
/ 23 декабря 2010

У меня проблема с RMS, мне нужно удалить запись и переместить записи после повышения уровня, есть ли шанс сделать это?Я пытался избежать этого, но в итоге я получаю следующее: (


Есть ли способ преобразовать это:

public void profilRmsPopulator(Form fr, ChoiceGroup hg) throws RecordStoreNotOpenException, RecordStoreException{
     int spacePos=0;

       for (int i =1; i<=rs.getNumRecords();i++){

       System.out.println("for loop\n");

  spacePos=RmsToStringDumper(i).indexOf(" ");
       System.out.println("spacePos: \n" +spacePos);

        hg.append(RmsToStringDumper(i).substring(0, spacePos),null);
           }

       fr.append(hg);

}

в while (recordEnumeration.hasNextElement ())? Конечно с этой обрезкой строки: P


хорошо, возможно, я объясню проблему, с которой я сейчас страдаю. Я создал приложение для мобильных устройств, которое до сих порсоздает профиль пользователя и записывает его в RMS, и он работает просто отлично. Алгоритм работает так: у пользователя запрашивают имя профиля и некоторые другие детали, когда он / она готовится, данные сохраняются. Схемазаписи выглядит следующим образом: Name_of_profile, модель, марка и т. д. Чем программа обрезает записи, чтобы получить name_of_profile и помещает его в группу выбора. И она также работает как брелок, но настоящая проблема заключается в удалении, я могу удалитьпервая или вторая запись, но когда я ставлю новую [новый профиль], я получаю сообщение об ошибке, подобное этому:

javax.microedition.rms.InvalidRecordIDException: ошибка при поиске записи

1 Ответ

1 голос
/ 23 декабря 2010

Полагаю, вы имеете в виду, что вам нужно «перенумеровать» идентификаторы записей, чтобы не было пропуска, созданного при удалении, и у вас была аккуратная серия идентификаторов в диапазоне от 1 до n, количество записей.*

Вы могли бы сделать это, но это было бы дорого - нет «обновления» для записей, только операции добавления / вставки / удаления.Поэтому вам нужно будет перебрать все записи, прочитать их, удалить их и записать обратно с измененным идентификатором.Применение изменений в правильном порядке тоже может быть непростым делом.

Зачем вам устранять пробелы?Вы можете перебирать весь набор, пропуская пропуски, используя RecordEnumeration, возвращаемый методом RecordStore enumerateRecords.Или вы можете получить массив текущего набора идентификаторов, используя метод getRecordIDs.В любом случае вы можете выполнять итерацию, не видя пробелов.

...