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: |
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
|
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. |
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:
Die Tabelle ist Adresse.db mit den Feldern Name und Vorname
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; 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