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.