AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze verschieben

Ein Thema von hsbc · begonnen am 5. Mai 2005 · letzter Beitrag vom 7. Mai 2005
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Datensätze verschieben

  Alt 6. Mai 2005, 08:12
Hallo Herbert,

physisches Verschieben in einer relationalen Datenbank ist ein echtes Novum für mich. Ich verstehe deine Anfrage so, dass du die Reihenfolge deiner Sätze verändern möchtest - und das ist tatsächlich ein Standardproblem.

Üblicherweise liegt eine Tabelle mit Primärschlüssel PK und Sortierindex SI (candidate key) vor. Wegen der Basis 1 und wegen deines Beispiels nehme ich an, das die von dir gezeigte laufende Nummer der PK deiner Tabelle ist. Du brauchst dann noch eine Spalte SI vom Typ INTEGER, die von 0 ab fortlaufend befüllt wird. In deinem Beispiel gilt dann si = pk - 1.

Das Umordnen von Sätzen geschieht durch Manipulation des Sortierindex. Die Operation muss unbedingt durch eine Transaktion geschützt werden, da sonst die Integritätsbedingung (SI fortlaufend ab 0) nicht gewährleistet werden kann. Aus Performanzgründen solltest du für diesen Zweck eine Stored Procedure verwenden.

Wenn du versuchen willst die SP selbst zu implementieren, dann schau nicht in den Anhang. Meine Implementierung für Interbase OE erledigt die Verschiebung aus deinem Beispiel mit folgendem Befehl:
EXECUTE PROCEDURE MoveRecs(5, 12, 5) Dabei werden die 5 Sätze an den Positionen 5 bis 9 hinter den Satz mit der Position 12 verschoben.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip sp-moverecs_203.zip (388 Bytes, 21x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz