![]() |
Datenbank: BDE • Version: 5.2.xyz • Zugriff über: Delphi Std DB Komponenten
Tabelle mit Indizies neu erstellen
Hallo,
ich möchte eine Tabelle samt Indiezies neu ertsellen, so sieht mein Code dazu aus:
Delphi-Quellcode:
Wenn ich das so ausführe bekomme ich bei dem Open die Meldung:
table1.Close;
table1.DatabaseName:=ADB; if not table1.Exists then begin table1.CreateTable; table1.IndexDefs.Clear; table1.IndexDefs.Add('SortErledigt','ErledigtDatum',[ixDescending]); end; table1.IndexName:='SortErledigt'; table1.Open; --------------------------- Fehler --------------------------- Index does not exist. Index: SortErledigt --------------------------- OK --------------------------- Wenn ich die IndexDefs vor dem CreateTable mache, kommt folgende Meldung: --------------------------- Fehler --------------------------- Table is not indexed. Table does not exist. Table: D:\Pfad\XTabelle.db File or directory does not exist. File: D:\Pfad\XTabelle.db --------------------------- OK --------------------------- Was genau mach ich falsch, das hinzufügen von Indizies ging doch über IndexDefs oder? :gruebel: |
AW: Tabelle mit Indizies neu erstellen
Hast Du Dir das
![]() |
AW: Tabelle mit Indizies neu erstellen
Hallo,
stell' bitte mal die Indexdefinitionen vor das CreateTable. So sind die Indexdefinitonen beim Erstellen noch nicht bekannt und können daher auch nicht berücksichtigt werden. |
AW: Tabelle mit Indizies neu erstellen
Das hat er ja auch versucht.
|
AW: Tabelle mit Indizies neu erstellen
Danke danke, so klappts:
Delphi-Quellcode:
Einmal musste ich einen Primärindex definieren und dann wird eine leere Option nicht akzeptiert, also muss man da was reinschreiben, da ich nicht descending sondern ascending sortieren will, hab ich das halt mal so gelöst.
table1.Close;
table1.DatabaseName:=ADB; if not table1.Exists then begin table1.IndexDefs.Clear; with table1.IndexDefs.AddIndexDef do begin Name:=''; Fields:='Id'; Options:=[ixPrimary,ixUnique]; end; with table1.IndexDefs.AddIndexDef do begin Name:='SortErledigt'; Fields:='Erledigt'; Options:=[ixCaseInsensitive]; end; table1.CreateTable; end; table1.IndexName:='SortErledigt'; table1.Open; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz