AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Neusortierung nach Änderung von Begriff in sortiertem Feld

Neusortierung nach Änderung von Begriff in sortiertem Feld

Offene Frage von "ratloser"
Ein Thema von ratloser · begonnen am 23. Dez 2005 · letzter Beitrag vom 25. Dez 2005
Antwort Antwort
ratloser

Registriert seit: 4. Mai 2005
Ort: Linz
36 Beiträge
 
#1

Neusortierung nach Änderung von Begriff in sortiertem Feld

  Alt 23. Dez 2005, 14:08
Datenbank: Access • Version: 2000 • Zugriff über: TADO-Connection, TADOBetterDataset, TDataSource
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
Vielen Dank!

Konrad
  Mit Zitat antworten Zitat
marabu

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

Re: Neusortierung nach Änderung von Begriff in sortiertem Fe

  Alt 23. Dez 2005, 17:47
Hallo Konrad,

du kannst dir den primary key des aktuellen Datensatzes merken und mit diesem nach der Sortierung den Positionszeiger korrigieren:

Delphi-Quellcode:
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;
Weihnachtsgrüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Neusortierung nach Änderung von Begriff in sortiertem Fe

  Alt 23. Dez 2005, 19:43
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
ratloser

Registriert seit: 4. Mai 2005
Ort: Linz
36 Beiträge
 
#4

Re: Neusortierung nach Änderung von Begriff in sortiertem Fe

  Alt 25. Dez 2005, 21:39
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:

Der aktuelle Provider unterstützt nicht die erforderliche Schnittstelle für die Sortier- bzw. Filterfunktion. Vielleicht weiss jemand die Lösung.

Danke
Vielen Dank!

Konrad
  Mit Zitat antworten Zitat
ratloser

Registriert seit: 4. Mai 2005
Ort: Linz
36 Beiträge
 
#5

Re: Neusortierung nach Änderung von Begriff in sortiertem Fe

  Alt 25. Dez 2005, 21:41
Ich habs derzeit so gelöst:

Delphi-Quellcode:
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;
Kann aber doch nicht der Weisheit letzter Schluss sein. Bei großen Datenmengen zuckt er dadurch ganz schön.

Danke
Vielen Dank!

Konrad
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf