Cursor ( enthält "falsche" Daten )

R

RED-BARON

Fortgeschrittenes Mitglied
19
Hallo Ihrs, Frohes wichteln die Tage,

aber zuvor noch ne Frage von mir :D

Cursor:
ich frage eine sqlite-tabelle ab

mOldRessources
= mSQL.rawQuery("select ts, name from " + table, null);

danach lade ich neue Daten vom Server:

downloadTable(table);

und frage die Tabelle erneut ab mit:

mNewRessources = mSQL.rawQuery("select ts,name from " + table, null);


zu meinem Erstaunen ist, dass

mOldRessources.getString(0);
und
mNewRessources
.getString(0);

die gleichen Werte enthalten.

Sieht so aus als ob die Cursor keine tiefen Kopien der Werte enthalten.
Wenn dem so ist bau ich meine Logik um, kein Problem :)

Ist es so, oder hab ich ein Bug in meinem Proggi ?

ahoi, RB
 
machst du eine korrekte zuweisung der daten auf table?

für mich sieht das folgend aus:
du hast dir eine methodedownloadTable(Table table) { .. } geschrieben, die neue Werte für table runterläd.

hast du in der Methode selbst noch so etwas wie table = .. ?

oder hast du einfach den scope nicht beachtet?
 
hm, danke erstmal,

nein, "table" ist wirklich nur ein String mit dem Namen der Tabelle
lokal und remote ( gleicher Name ). Ich frage also tatsächlich aus der
lokalen SQLite DB z.B. eine Tabelle "bestellungen" ab. Wollte die Daten
in einem Cursor-Objekt "halten" und dann die lokale Tabelle "Bestellungen"
mit dem Inhalt einer Remote-Tabelle "Bestellungen" füllen. Danach wollte
ich einen neuen Cursor füllen um die Daten zu vergleichen.

Es zeigte sich aber, beide Cursor haben den gleichen Inhalt nach der ganzen Aktion.

Meine Lösung schaut nun so aus:
ich hole mir die Daten aus der lokalen Tabelle und lade diese in einen
Vector, welcher Objekte mit den Daten aus den Datensätzen enthalten.

Dann lade ich mir die neuen Daten und erstelle einen neuen Cursor und
kann nun die im Vector gesammelten Objekte ( Daten ) mit den neuen
vergleichen.

Praktisch hats nix mit Bestellungen zu tun sondern mit Reduktion der
Datenmengen :D

Tabelle: resourcen < tabname, timestamp >
immer wenn in der Remote-DB Werte einer Tabelle geändert werden wird
das in der "resourcen" markiert. Das Gerät läd sich immer die "resourcen"
runter. Sichert vorher die alten Daten und schaut nacher welche anderen
Tabellen noch synchronisiert werden müssen.
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
229
swa00
swa00
A
Antworten
10
Aufrufe
1.021
swa00
swa00
A
Antworten
10
Aufrufe
1.927
swa00
swa00
Zurück
Oben Unten