Lude: nummerieren von datensätzen

Beitrag lesen

Hi,

ich habe 3 funktionen:

  1. insert(pos,name) // name nach pos einfügen

  2. change(pos1,pos2)// selbsterklärend

  3. delete(list)     // alle positionen in list löschen

  4. und 2) werden mit abstand am häufigsten aufgerufen also sollen sie auch so schnell wie möglich sein was ich aber nur mit einem fortlaufenden index garantieren kann. 3) wird selten aufgerufen also kann sie etwas zeitaufwendiger sein...

ich gebe zu, dass ich Deine Anforderung moeglicherweise erst jetzt verstehe. Fuer meine bisherigen nicht wirklich zielfuehrenden Antworten bitte ich dementsprechend um Nachsicht.

Fassen wir also mal zusammen: Wir haben einen anfangs fortlaufenden Zaehler mit Verweisen auf die Dateipfade. Hauptproblem: Wir wollen ein Bildchen "in der Mitte" einfuegen.

Ich denke da an meine Zeiten als Basic(und Cobol)-Programmierer. Da gab es diese Zeilennummerierungen und man war gehalten mit '10', '20', '30' und so weiter zu nummerieren, weil ja ggf. noch Programmzeilen eingefuegt werden muessen. - Zugegebenerweise ein bauernschlauer Loesungsansatz, aber doch wesentlich ueberzeugender als eine immer neue Reorganisation des "Index"? Ich denke, dass ja.
Allerdings hat man doch ein flaues Gefuehl dabei, denn die Idealloesung ist es offensichtlich nicht. - Wenn wir mal davon ausgehen, dass die zu manipulierende Datenstruktur eine (logisch) verzeigerte Liste ist, dann haben wir auch schon eine andere Loesung: Du kannst beim "Bild-Insert" genau zwei Datensaetze manipulieren und zwar den Neuen schreiben (soll auf den ermittelten "Nachfolger" zeigen) und den "Vordermann" umhaengen (der soll jetzt auf den neuen zeigen). (Dummerweise haettest Du dann beim Lesen beispielsweise aller Datensaetze das Problem, dass Du sehr viele Queries absenden muesstest.) - Wie macht das eigentlich 'CK' hier im Forum? (Das Problem scheint mir aehnlich gelagert zu sein.)

Nun zur Frage, ob man das alles "in SQL" durchfuehren kann, was ja bekanntlich fuer bestimmte Anforderungen attraktiv erscheint. Ich glaube ja, und zwar genau dann, wenn der SQL-Dialekt ueber eine Programmflusskontrollsprache verfuegt. Beispielsweise bei 'T-SQL' (Micro$oft) ist das der Fall. Dann kann man (fast alles) was die umgebende Programmlogik so treibt auch "in SQL" machen.

Gruss,
Lude,

--
"Fuer Fragen rund um die IT stets kostenfrei verfuegbar."