RecordStore >Fragen zu deleteRecord ?

Status
Nicht offen für weitere Antworten.
B

ByteRider

Gast
Hallo,

ich habe eine Frage zu den ID´s in einem Record store !

Dies sind doch die Positionen der einzelenen Einträge oder ?

ID Eintrag
1 A
2 ABA
3 Hallo
4 Blabla


Wenn ich nun mit deleteRecord(3) den Eintrag "Hallo" entferne, rutschen die Anderen einen hoch, oder ?

ID Eintrag
1 A
2 ABA
3 Blabla

ODER ????????????????

Bei mir funktioniert das alles irgendwie nicht, ich zerschieße mir da das RecordStore mit !!!
Danach sind keine Operationen mehr möglich !!!

Wenn ich zwei Einträge unmittelbar hintereinander lösche, fange ich mit dem letzten an, damit die ID´s stimmen!




Gruß

Byte
 

server007

Mitglied
nicht ganz.
der RecordStore organisiert die Daten anders.
Beispiel:
Du fügst dem RecordStore 700 daten zu (position des letzten wird dann 699 sein) und löscht dann die einträge von 3-700.
wie du meinst ist dann die nächste freie position zum einfügen die 4, dies ist aber nicht so. es ist die 701, da dies eine fortlaufende zahl ist.
am besten ist, du nimmt die klasse RecordEnumeration und machst einfach

Code:
RecordStore rs = RecordStore.openRecordStore("database", true);
RecordEnumeration recEnum = rs.enumerateRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated);
fallst keinen filter brauchst --> null einsetzen. das gleiche gilt beim comparator. den keepUpdated boolean einfach auf true setzen.

auf die ID zugreifen ist auch ganz einfach:
Code:
recEnum.nextRecordId();
und mit dieser kannst du dann einzelne records löschen.
 
G

Guest

Gast
server007 hat gesagt.:
nicht ganz.
der RecordStore organisiert die Daten anders.
Beispiel:
Du fügst dem RecordStore 700 daten zu (position des letzten wird dann 699 sein) und löscht dann die einträge von 3-700.
wie du meinst ist dann die nächste freie position zum einfügen die 4, dies ist aber nicht so. es ist die 701, da dies eine fortlaufende zahl ist.
am besten ist, du nimmt die klasse RecordEnumeration und machst einfach

Code:
RecordStore rs = RecordStore.openRecordStore("database", true);
RecordEnumeration recEnum = rs.enumerateRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated);
fallst keinen filter brauchst --> null einsetzen. das gleiche gilt beim comparator. den keepUpdated boolean einfach auf true setzen.

auf die ID zugreifen ist auch ganz einfach:
Code:
recEnum.nextRecordId();
und mit dieser kannst du dann einzelne records löschen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben