Frage

Ich habe ein Problem mit RMS, was ich brauche, ist einen Datensatz zu löschen und die Datensätze nach Ebene nach oben zu bewegen, ist es eine Chance, es zu tun? Ich habe versucht, dies zu vermeiden, aber alles in allem ich mit diesem am Ende: (


Gibt es eine Möglichkeit, diese zu konvertieren:

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

}

in while (recordEnumeration.hasNextElement ())? Natürlich mit der Saite Besatz: P


ok, vielleicht werde ich erklären, das Problem ich jetzt leiden. Ich habe eine App auf mobiles geschaffen, die so weit wie jetzt ein Benutzerprofil erstellen und es in einem RMS zu schreiben, und es funktioniert gut. Der Algorithmus funktioniert wie folgt: Benutzer für den Namen des Profils und einigen anderen Details gefragt, wenn er / sie getan wird, werden Daten gespeichert werden. Das Schema der Aufzeichnung sieht wie folgt aus: Name_of_profile, Modell, Marke, etc. als das Programm trimmt die Aufzeichnungen mit den name_of_profile und legt sie in der Choice zu bekommen. Und es auch wie ein Zauber worsk, aber das eigentliche Problem ist mit dem Löschen, kann ich löschen ersten oder zweiten Datensatz, aber wenn ich setzen neue [neues Profil] Ich erhalte Fehler wie folgt aus:

javax.microedition.rms.InvalidRecordIDException: Fehlersuche Datensatz

War es hilfreich?

Lösung

Ich nehme an, Sie meinen Sie müssen ‚renumber‘ der Datensatz-IDs, so dass die durch die Löschung erstellt Lücke nicht vorhanden ist, und Sie haben eine ordentliche Reihe von IDs von 1 bis n im Bereich, die Anzahl der Datensätze.

Sie könnte das tun, aber es wäre teuer sein - gibt es kein ‚update‘ für Aufzeichnungen, nur hinzufügen / Insert / Löschvorgänge. So müßten Sie alle Datensätze iterieren, sie zu lesen, sie zu löschen und sie wieder mit dem modifizierten id schreiben. die Änderungen in der richtigen Reihenfolge der Anwendung könnte zu schwierig sein.

Warum brauchen Sie die Lücken zu beseitigen? Sie können den vollständigen Satz iterieren ‚Überspringen‘ Lücken die RecordEnumeration durch die Records enumerateRecords Methode zurückgegeben werden. Oder könnten Sie ein Array des aktuellen Satzes von ids mit der getRecordIDs Methode erhalten. In jedem Fall können Sie ohne zu sehen, Lücken laufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top