Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sortierung über TTable (https://www.delphipraxis.net/9928-sortierung-ueber-ttable.html)

heizy 7. Okt 2003 21:46


Sortierung über TTable
 
Hallo,

habe hier im Forum gestöbert, wie ich eine TTable1 sortieren kann.
Es wurde geraten einen Sekundärindex zu schaffen, und diesen mit
table1.indexname: ..... festzulegen.

Wunderbar, das hatte funktioniert. Versuche jetzt aber über ein DBGrid zuzugreifen,
bzw. zu editieren. Dann gibt er die Fehlermeldung, dass mein Index schreibgeschützt sei.
EGAL ob ich ein bedeutendes, oder unbedeutendes Feld editieren möchte.

Versuche ich eine Datenbank über SQL.add aufzustellen, kann ich via DBGrid auch keine
Editierung vornehmen....

Brauche hüüüllfeee.....


Grüße
Heizy :gruebel:

heizy 8. Okt 2003 11:23

Re: Sortierung über TTable
 
Habe das Ganze gerade selbst gelöst, indem ich einfach den Sekundärschlüssel zu einem Primärschlüssel gemacht habe, und siehe da, es geht

MrSpock 9. Okt 2003 10:01

Re: Sortierung über TTable
 
Hallo heizy,

du kannst es nur zu DEM Primärschlüssel gemacht haben, es gibt nämlich nur einen.
Diese Lösung ist deshalb auch nicht allgemeingültig anwendbar.
Wenn du mit der Lösung leben kannst, ist es ja gut. Wäre aber trotzdem interessant, warum es vorher nicht funktioniert hat, denn es ist natürlich möglich Daten einzufügen, wenn ein Sekundärschlüssel aktiviert ist.

Ulrich Wolf 16. Mär 2004 10:41

Re: Sortierung über TTable
 
Hi,
das gleiche Problem mit der Fehlermeldung habe ich auch.
Zuerst habe ich den Index erstellt. Eine Sortierung fand dann nicht statt.
Dann habe ich über die Datenbankoberfläche den Sekundärindex erstellt. Damit werden zwei Dateien *.XG0 und *.YG0 angelegt.
Die Anzeige fand erst nach dem Durchlauf statt. Mit dem Index konnte ich aber keine Datensätze mehr bearbeiten. Es kommt die Meldung: Index ist schreibgeschützt.

Delphi-Quellcode:
procedure TForm1.Name1Click(Sender: TObject);
var
i:integer;
begin
Table1.Active := False;
Table1.Exclusive := True;
//Aktuell verfügbare Indizes abrufen
Table1.IndexDefs.Update;
 //Ermitteln, welcher Index "CustNo" und "OrderNo" kombiniert
for I := 0 to Table1.IndexDefs.Count - 1 do
  if Table1.IndexDefs.Items[I].Fields = 'Name;Vorname' then
    // Diesen Index als aktuellen Index der Tabelle aktivieren
    Table1.IndexName := Table1.IndexDefs.Items[I].Name;
      //Table1.IndexName := Table1.IndexDefs[I].Name;
Table1.Exclusive := False;
Table1.Active := True;

end;
Die Tabelle ist Adresse.db mit den Feldern Name und Vorname

Wie kann ich nach der Sortierung den DBGrid wieder beschreiben?

Was ich eigentlich will ist folgende Funktion.
Über die Delphi's Datenbankoberfläche unter Tools -> Tabellenoperationen -> sortieren
sortiere ich die Tabelle. Dann Schließe ich das Programm und nach dem erneuten start werden die Einträge sortiert angezeigt. Dies wollte ich durch einen Menüpunkt "sortieren" erledigen lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz