Hallo,
in meinem Prog. werden im Grid Daten angezeigt, die mit onTitleClick einen Index erhalten und sortiert im Grid erscheinen.
Delphi-Quellcode:
Table.Close;
Table.Exclusive := true;
Table.AddIndex(sName, sName,[]); // (IndexName, indiziertes Feld[optionen]);
Table.IndexName := sName;
Table.Exclusive := False;
Table.Open;
sIndexList.Add(sName); // neuer Index in StringListe
Die neu erzeugten Indizies werden in einer Liste ‚gesammelt’.
Damit die Tabelle nicht geändert wird, werden die neu erstellten Indizies gemäß dieser Liste wieder gelöscht.
Delphi-Quellcode:
Table.DeleteIndex(sIndexList[cnt]); // index aus table
sIndexList.Delete(cnt); // index aus stringlist
Table.IndexDefs.Update; // indexdefinition aktualisieren
Table.StoreDefs := False;
Das ist auch soweit
OK.
Nun habe ich mein Prog. erweitert, die Table werden in TreeView dargestellt. Mit Click auf die entsprechende Tabelle wird die Table geöffnet, die Daten im Grid angezeigt und man kann so zwischen den Tabellen hin und her schalten.
Auch OK.
Aber clicke ich im Grid und erstelle so einen neuen Index zb. Name, der vor dem Tabellenwechsel wieder gelöscht wird, so erscheint bei Tabellenwechsel die Fehlermeldung
Cannot find index NAME
Der Tabellenwechsel: Index der aktiven Table löschen, aktive Tabelle schließen (Table.Close), neue Tabelle öffnen.
Delphi-Quellcode:
SelectTable(TreeView.Selected.Text);
Table.Close; // active Table schließen
Table.TableName := TreeView.Selected.Text; // neue Tabelle
Table.Open;
Warum wird da ein nicht mehr vorhandenr Index gesucht, wo liegt da eventuell der Fehler?
Habe schon einige Zeit mit Fehlersuche verbracht und nichts gefunden, vielleicht hat ja von Euch eine eine hilfreiche Idee dazu. Danke
Fritz aus Ahlhorn