Seite 1 von 1

ListIconGadget mit SQLite sortieren

Verfasst: 21.10.2014 20:59
von gnaps
Hi Forum,

ich hab hier mal wieder eine Sache und weis nicht wie ich das angehen soll.

Wäre schön wenn mir einer einen Tipp geben kann.

Ich schnipple mit hier eine Servicesoftware zusammen.
Die Daten werden in eine SQLite-Datenbank gespeichert.

Ich habe folgende Felder in der Tabelle.

ID;Datum;Bezeichnung.....;Pos

wenn ich nun einen neuen Datensatz speichere hole ich mir die Anzahl der Einträge im ListIconGadget +1
und speichere den Wert im Feld Pos ab.
Das ListIconGadget wird dann mit den Daten neu geladen und nach dem Feld Pos sortiert.
Bis hierher ist alles OK.

wie gehe ich jetzt vor wenn ich z.B. 5 Datensaätze habe.
ID;Datum;Bezeichnung.....;Pos

1 21.10.2014 Bez1 ..... 1
2 21.10.2014 Bez2 ..... 2
3 21.10.2014 Bez3 ..... 3
4 21.10.2014 Bez4 ..... 4
5 21.10.2014 Bez5 ..... 5

und möchte nun dass der Datensatz 5 auf Pos 2 steht ?

Das Feld Pos auf 2 ändern ist klar, wie gehts dann weiter ?

wie passe ich nun das Feld Pos von den anderen Datensätze an damit ich folgendes habe.

1 21.10.2014 Bez1 ..... 1
5 21.10.2014 Bez5 ..... 2
2 21.10.2014 Bez2 ..... 3
3 21.10.2014 Bez3 ..... 4
4 21.10.2014 Bez4 ..... 5

ich hoffe ich konnte mein Problem verständlich beschreiben.

Gruß
gnaps

Re: ListIconGadget mit SQLite sortieren

Verfasst: 21.10.2014 21:35
von ts-soft
Datensatz 2 temporär zwischenspeichern, 2 auf werte von 5 ändern, 5 auf temporär zwischengespeicherten ändern.
Und jetzt noch die SQL-Datei updaten.

Gruß
Thomas

Re: ListIconGadget mit SQLite sortieren

Verfasst: 21.10.2014 21:40
von NicTheQuick
Ich würde die Datensätze einfach in einer LinkedList speichern und statt einem Element 'Pos' einfach gar nichts speichern. Denn man kann hier ja wunderbar die Reihenfolge in der LinkedList als Positionen ansehen. Und mit 'MoveElement()' kann man dann ganz einfach eine Zeile irgendwo anders hin verschieben. Zusammen mit 'ListIndex()' kannst du dir zu jedem Element dann selbst heraus finden, auf welcher Position es sich befindet.