Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: vorhandenen Index ermitteln

  Alt 20. Nov 2007, 19:25
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 TABSTable

> 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
Heiko
  Mit Zitat antworten Zitat