Question

J'ai un problème avec RMS, ce que je dois est de supprimer un enregistrement et déplacer les dossiers après un niveau, est-il possible de le faire? J'ai essayé d'éviter cela, mais dans tout ce que je finis avec ceci: (


Est-il possible de convertir ceci:

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

}

dans while (recordEnumeration.hasNextElement ())? Bien sûr, avec cette chaîne de coupe: P


ok, je vais peut-être expliquer le problème que je souffre maintenant. J'ai créé une application sur mobile qui en ce qui est maintenant de créer un profil d'utilisateur et écrire dans un RMS, et cela fonctionne très bien. L'algorithme fonctionne comme ceci: l'utilisateur est invité pour le nom du profil et d'autres détails, quand il / elle se fait, Les données sont en cours d'enregistrement. Le schéma des regards record comme celui-ci: Name_of_profile, modèle, marque, etc. que le programme rogne les dossiers pour obtenir le name_of_profile et le met dans le ChoiceGroup. Et elle a aussi worsk comme un charme, mais le vrai problème est avec la suppression, je peux supprimer premier ou deuxième disque, mais quand je mets nouveau [nouveau profil] Je reçois une erreur comme ceci:

javax.microedition.rms.InvalidRecordIDException: erreur enregistrement de conclusion

Était-ce utile?

La solution

Je suppose que vous voulez dire que vous devez « renumérotation » le record ids de sorte que le vide créé par la suppression n'existe pas, et vous avez une série soignée de ids allant de 1 à n, le nombre d'enregistrements.

peut le faire, mais il serait cher - il n'y a pas de « mise à jour » pour les enregistrements, ajouter uniquement / insertion / suppression des opérations. Donc, vous devez itérer sur tous les dossiers, de les lire, de les supprimer et de les écrire en arrière avec l'ID modifié. L'application des modifications dans le bon ordre pourrait être trop délicat.

Pourquoi avez-vous besoin d'éliminer les lacunes? Vous pouvez parcourir l'ensemble complet, les lacunes « sauter » à l'aide du RecordEnumeration retourné par la méthode de enumerateRecords RecordStore. Ou bien, vous pourriez obtenir un tableau de l'ensemble actuel de ids en utilisant la méthode de getRecordIDs. Dans les deux cas, vous pouvez itérer sans voir les lacunes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top