Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox, index, gleiche werte (https://www.delphipraxis.net/6135-paradox-index-gleiche-werte.html)

bomberpilot80 30. Jun 2003 22:49


Paradox, index, gleiche werte
 
Hallo,
ich habe da ein Problem. ist vermutlich nur eine Kleinigkeit, bekomme es aber einfach nicht hin.

Gegeben sind drei Tabellen:

Kunden
- Kunden_ID
- Name
- Strasse
- ...

Produkte
- Produkt_ID
- Bezeichnung
- Preis

Bestellung
- Kunden_ID
- Menge
- Bezeichnung
- Preis

Die Tabelle Bestellung hat die Tabelle Kunden als MasterSource.
Index sind natürlich jeweils Kunden_ID

Wenn ich z.B. mit einem Lookupfeld den Kunden und das Produkt auswähle,
soll mit hilfe eines Buttos OK in die Tabelle Bestellung die Kunden_ID, Menge, Bezeichnung und Preis einfügen.

Das ganze geht auch, jedoch nur einmal. Will ich einen zweiten Artikel hinzufügen, bekomme ich einen Indexfehler.
Ich habe bereits heraus gefunden, das ich in die Spalte mit dem index nicht zweimal den selben wert eintragne kann.
Das müßte aber sein, da die Kunden_ID immer gespeichert wird und bei dem selben Kunden natürlich die selbe Kunden_ID ist.

Das ganze ist so geplant, dass wenn ich bei der Bestellübersicht den Kunden auswähle, alle seine bestellten Artikel in einer DBGrid angezeigt werden.
Dies kann man doch normalerweise wunderbar mit der Verknüpfung der Tabellen realisieren.

Villeicht hat ja jemand eine Idee.
Die tabellen müssen nicht unbedingt Verknüpft sein. Ich nehem auch andere Lösungen, bei denen ich über die Kundenauswahl alle bestellten Artikel in einer Tabelle angezeigt bekomme.

MfG Timo

Mario 1. Jul 2003 11:01

Es sollte reichen, wenn der Index Kunden_ID in Bestellung nicht eindeutig ist. Das ist in Deinem Falle ja gar nicht erforderlich. Dann dürfen auch mehrere Datensätze mit der gleichen Kunden_ID hinzugefügt werden.

bomberpilot80 2. Jul 2003 09:46

Fehler
 
Sorry,
ich habe einen kleinen Fehler in meiner Beschreibung.

Kunden_ID hat natürlich keinen index sondern den Primärschlüssel.
Ansonsten kann ich die Tabellen nicht über den MasterSource der Table-Komponente verknüpfen.

Mit dem Indes habe ich es noch nicht hin bekommen. Wenn Jemand eine kleine Beschreibung hat, wie ich es mit Index machen kann, wäre nicht schlecht.

MfG Timo

Mario 2. Jul 2003 09:54

Deine MasterTabellen sind OK. Deine Detail-Tabelle musst Du nun umstellen. Einmal musst Du zum Anfang ein Feld (z.B. idx) mit einem AutoInc zufügen, dass ist Dein neuer Primärschlüssel. Dann legst Du noch einen Sekundärschlüssel an: Feld Kunden_Id, nicht eindeutig. Das wars.

Nun in Delphi deine Detail-Tabelle noch mal Aktive False und wieder True schalten und bei der Feldverknüfung kannst Du Dich für einen Index entscheiden. Da nimmst Du dann den Sek.Index.

bomberpilot80 3. Jul 2003 08:55

Danke schön
 
erstmal danke schön,
habe es mittlerweile selber raus bekommen.

Habe ein altes Delphibuch aus meinen schulzeiten gefunden.
Da ist alles ziemlich gut beschrieben. Das versteht sogar ein Id... :D

Habe schon lange nichts mehr mit Delphi gemacht und taste mich so langsam wieder rein.

MfG Timo


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz