Autor Beitrag
mergall
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 16.07.02 17:22 
Hallo Ihr alle,

habe eine Paradox - Tabelle mit folgendem Aufbau:
ID, PersID, Datum, Anfangszeit, Endzeit,

Gibt es eine Möglichkeit die Tabelle so zu strukturieren, dass
der Primärschlüssel aus mehreren Spalten besteht.
(ID, PersID, Datum)

z.B.: Die Werte der Kombinationen ID, PersID und Datum dürfen
nur einmal vorkommen. z.B. Franz und 01.01.02 darf nur einmal
existieren, damit nicht zwei verschiedene Datensätze pro Mitarbeiter
und Datum existieren können.

Oder muss man das über die Eingabe realisieren?

Wäre für jeden Tip dankbar,

Gruß Mergall,

PS. Habe schon mit zusammengesetzten Sekundärindizes probiert,
funzte nicht.
Buggi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Di 16.07.02 17:49 
Hi Mergall,

ja man kann einen zusammengesetzten Primärschlüssel erstellen. Kannst Du in der Datenbankoberfläche machen. Einfach überall, wo Du ein Schlüssel haben willst 'nen Häckchen machen. Wenn Du dann ein Datensatz schreibst wo alle Schlüsselfelder identisch sind bekommst Du einen Indexfehler.
Ich würd's lieber lassen, aber es geht.

Good luck

_________________
Delphi 4, BDE, Paradox
mergall Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 16.07.02 18:10 
Titel: ich Trottel.... aber warum?
:D

Bin aber auch ein Trottel,
hab das die ganze schon so probiert, wenn man
allerdings eine fortlaufende ID unter dem zusammen-
gesetzten Primärindex hat, kann es ja keine Über-
einstimmung geben... :roll:

Aber was spricht in meinem Beispiel gegen diesen
Primärindex? Und wie würdest Du es angehen?

MfG Mergall
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Di 16.07.02 18:51 
Also die Aufgabenstellung ist mir nicht ganz klar ....

Aber mal so ein Ansatz:
ausblenden Quelltext
1:
2:
3:
if Table.Locate(DeineSuchFelder,VarArrayOf([DeineSuchbegriffe]),[])
then Table.edit
else Table.Append;


Wird ein entsprechender Datensatz gefunden, wird dieser editiert, ansonsten neu angelegt.
Den gesamten folgenden Code kannst du identisch schreiben und mit Post abschliessen.

_________________
Keine Signatur ...