TDbf: Primärschlüssel über mehrere Felder definieren

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
starkard
Beiträge: 87
Registriert: Mi 31. Okt 2007, 10:44

TDbf: Primärschlüssel über mehrere Felder definieren

Beitrag von starkard »

Hallo Profis,

Habe wieder ein Problem, dass ich nicht alleine lösen kann. Möchte ein Primärschlüssel über mehrere Felder definieren, um z.b. identische Eingaben über diese Felder auszuschliessen. (Bitte keine Grundsatzdiskussion)

Habe schon volgendes ausprobiert:

Code: Alles auswählen

Dbf1.AddIndex('', 'ZOPFBEZ+LAENGEBEZ+HOLZART+QUALITAET', [ixPrimary, ixUnique]);
und

Code: Alles auswählen

Dbf1.AddIndex('', 'ZOPFBEZ;LAENGEBEZ;HOLZART;QUALITAET', [ixPrimary, ixUnique]);
Programm wurde ausgeführt. Allerdings wurde bei Eingabe zweier identischer DS keine Fehlermeldung ausgegeben.

Bin dann auf folgende Deklaration gestossen:

Code: Alles auswählen

with Dbf1.IndexDefs.AddIndexDef do begin;
         Name := '';
         Fields := 'ZOPFBEZ;LAENGEBEZ;HOLZART;QUALITAET';
         Options := [ixPrimary];
end;
Funzt aber nicht, da Lazarus kein AddIndexDef kennt. Könnt ihr mir ein Tipp geben? THX

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Dbf1.AddIndex('', 'ZOPFBEZ+LAENGEBEZ+HOLZART+QUALITAET', [ixPrimary, ixUnique]);
ist richtig, jedoch würd ich nen namen mit übergeben kann sein das es daran scheitert probier doch mal:
Dbf1.AddIndex('IDENT', 'ZOPFBEZ+LAENGEBEZ+HOLZART+QUALITAET', [ixPrimary, ixUnique]);
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten