![]() |
Datenbank: Access • Version: 2000 • Zugriff über: TADO-Connection, TADOBetterDataset, TDataSource
Neusortierung nach Änderung von Begriff in sortiertem Feld
Hallo an Alle!
Hab wieder mal ein kleines Problem! Bei einer Anwendung habe ich die Daten mit Select * from tabelle order by name ausgewählt. Wenn ich nun einen Eintrag im Feld Name ändere, oder bei einem bestehenden Satz das Feld name ändere, stimmt die alphabetisch Sortierung nicht mehr. Wie kann man diese wieder herstellen. Habs mit index versucht, jedoch funzt das glaub ich im Zusammenhang mit ADO nicht, das Spiel active:= false und active:=true ist auch nicht durchführbar, da er in diesem Fall zwar eine sehr schnelle Sortierung akutalisiert, jedoch danach nicht mehr am aktuellen Satz steht. Vielleicht hat jemand eine Idee. LG Ratloser |
Re: Neusortierung nach Änderung von Begriff in sortiertem Fe
Hallo Konrad,
du kannst dir den primary key des aktuellen Datensatzes merken und mit diesem nach der Sortierung den Positionszeiger korrigieren:
Delphi-Quellcode:
Weihnachtsgrüße vom marabu
procedure TDemoForm.TestButtonClick(Sender: TObject);
var id: integer; begin with ADOQuery do begin DisableControls; id := FieldByName('ID').AsInteger; // GetSqlStatement() ist deine Funktion die das // SQL Statement neu zusammenbaut... SQL.Text := GetSqlStatement; Open; Locate('id', id, []); EnableControls; end; end; |
Re: Neusortierung nach Änderung von Begriff in sortiertem Fe
Beim ADOTable gibt es doch die Eigenschaft 'IndexFieldNames'. Die setzt Du auf 'Name' und das wars.
Einem DB-Server sollte man das Sortieren nicht überlassen, denn er hat Besseres zu tun. ADO sortiert für Dich und behält auch noch die Reihenfolge bei. Ob aber das Umhergehüpfe des Datensatzzeigers auf dem Bildschirm wiklich das Gelbe vom Ei ist, sei dahingestellt. |
Re: Neusortierung nach Änderung von Begriff in sortiertem Fe
Danke für Deine Antwort.
Das hab ich aber schon gefunden. Es ist nur so, dass er mir bei Eintrag eines Feldes unter IndexFieldNane folgende Meldung bringt:
Delphi-Quellcode:
Vielleicht weiss jemand die Lösung.
Der aktuelle Provider unterstützt nicht die erforderliche Schnittstelle für die Sortier- bzw. Filterfunktion.
Danke |
Re: Neusortierung nach Änderung von Begriff in sortiertem Fe
Ich habs derzeit so gelöst:
Delphi-Quellcode:
Kann aber doch nicht der Weisheit letzter Schluss sein. Bei großen Datenmengen zuckt er dadurch ganz schön.
procedure Tstammdaten_Branchen.BrancheExit(Sender: TObject);
var begriff: String; begin db_branchen.post; begriff := db_branchen['branchen']; db_branchen.Active := false; db_branchen.Active := true; db_branchen.Locate('branchen', begriff, [loPartialKey]); buttonwahl; end; Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz