Hallo,
> erstmal danke. Habs gleich testen wollen, aber gleich in der ersten Zeile
> Delphi-Quellcode: markieren
> function IndexExists(theTable: TABSTabl; const theIndexName: String: Boolean;
> gibt es schon Fehlermeldungen.
welche
nun TABSTabl muss heissen TABSTabl
e
> In dieser Zeile, sehe ich das richtig, muß man da einen Indexnamen vorgeben?
Jepp, da du den Index erzeugst, warum umständlich,
der Name heisst z.B. idx_
FeldName
also bei
Name idx_Name
> besser wäre, den vorhandenen Index für das Feld (ganz gleich welcher Name) auslesen und dann bei
> Table.IndexName eintragen.
Warum ?
> Am Ende sollte das unabhängig von den Datentabellen und Feldnamen funktionieren.
> Schau Dir das doch bitte nochmal an.
Nuja, dann viel Spass beim Basteln.
Ich habe das IndexField.Name aus der
Bde-Hilfe für TTable geholt,
dass soll ja kompatibel sein.
Suche mal nach TIndexDef (ohne das
s)
Dort gibt es ein property
Fields
Du musst beachten, dass es auch einen zusammengestezten Index geben kann.
Bsp.
Tabelle Person: Name,Vorname
Index idx_FullName -> Fields für Name und Vorname
Name;Vorname
wenn es keine zusammengesetzten Indizes gibt,
kannst du über
if Pos(theFieldName, IndexField.Fields)=1
rausbekommen, ob dein Feld (theFieldName) im Index drinsteht.
Heiko