![]() |
Mehrere MasterSources von einer Tabelle??
Hi,
Ich hab mal wieder ne kleine Datanbankfrage. Folgende Situation: Ich hab ne MySQL DB mit den ZEOS-Komponenten angebunden. Das Programm soll ne Reparaturdatenbank für PCs werden. Ich hab also ne Tabelle "Auftrag", in der sämtliche allgemeinen Daten zu einer Reparatur gespeichert werden. Außerdem sollen noch sämtliche Komponenten, die in dem zu einem Auftrag gehörenden PC verbaut sind aufgenommen werden. Also hab ich ne Tabelle "Artikel" in der sämtliche verfügbaren Einzelteile stehen. Diese möchte ich über ne Verbindungstabelle namens "Verbaut" miteinander verbinden. Ich hab also bei den Haupttabellen jeweils die Verbindungstabelle als MasterSource angegeben und als Masterfield den entsprechenden Fremdschlüssel. Sollte doch soweit richtig sein oder?? :gruebel: Jetzt brauche ich aber auch noch eine Tabelle in der ich aufnehme, welche Komponenten für den jeweiligen Auftrag bestellt sind. Ich müsste also die Tabelle "Auftrag" über ne weitere Verbindungstabelle "Bestellt" mit der "Artikel"-Tabelle verbinden, in MasterSource und Masterfield steht ja aber schon die andere Tabelle drin. Wie geht man denn in so nem Fall vor??? :wiejetzt: |
Re: Mehrere MasterSources von einer Tabelle??
Zitat:
ich denke nicht, dass dein Vorgehen richtig ist. Wenn ich dich richtig verstanden habe, dann möchtest du bei Auswählen eines Auftrages die verbauten und bestellten Artikel aufgelistet sehen. Das heißt, die Auftragstabelle ist auf jeden Fall Master! Du kannst in diesem Fall nicht die Verbindungstabelle als Master angeben, sondern musst über die Verbindungstabelle den jeweiligen Artikel auflösen, ungefähr so:
SQL-Code:
Jetzt kannst du bei dieser Datenmenge die Auftrags-Datenmenge als Master (über Auftrag_ID) angeben, so dass alle verbauten Artikel des gewählten Auftrags angezeigt werden. Ebenso musst du mit den bestellten Artikeln vorgehen.
SELECT Verbaut.Auftrag_ID, Artikel.* FROM Verbaut, Artikel WHERE Verbaut.Artikel_ID = Artikel.Artikel_ID
MfG Stevie |
Re: Mehrere MasterSources von einer Tabelle??
Zwischen den Tabellen Auftrag und Artikel besteht eine N:M Beziehung.
Die Tabelle enthält beide Primärschlüsselfelder (IdAuftrag & IdArtikel). Beide Felder zusammen bilden den Primärschlüssel für die Tabelle Verbaut. Jetzt der Trick: :hi: Die Tabelle Verbaut enthält zusätzlich noch das Feld ArtikelStatus. 0 = keine Info, 1 = Artikel verbaut, 2 = Bauteil defekt |
Re: Mehrere MasterSources von einer Tabelle??
@stevie
Ich glaub da hatte ich ein grundsetzliches Verständnisproblem. Ich war in der Vorstellung, dass man die Tabellen in etwa so wie bei Access verknüpfen kann. Auf die Idee, das über ne Abfrage zu machen bin ich nicht gekommen :roll: Eben nur ein Mensch :lol: Ich werd das mal so versuchen. |
Re: Mehrere MasterSources von einer Tabelle??
Mit dem Anzeigen ist ja mittlerweile klar. Ich stelle das Query in nem DBGrid dar, jetzt wäre es schön, wenn ich in diesem Grid Datensätze hinzufügen könnte, das Query kann doch aber nur lesen.
:?: :?: :?: |
Re: Mehrere MasterSources von einer Tabelle??
Gibt's denn ne Möglichkeit, das ich das Query so gestalte, dass ich sowohl die Verknüpten Felder anzeigen lasse, gleichzeitig aber auch über das DBgrid mit dem es verbunden ist Datensätze einfüge? Ich möchte nicht extra noch ne Eingabemaske dafür erstellen. :stupid:
|
Re: Mehrere MasterSources von einer Tabelle??
Hallo buyden,
also mit Queries kannst du auch Datensaätze einfügen, indem du die Eigenschaft RequestLive mal auf True setzt. Das aber nur am Rande, denn bei deinem SQL Statement ist ein direktes Editieren eher nicht möglich, aber versuchen kannst dus. Scheiterts, dann ist die Komponente TUpdateSQL für dich eine Lösung. Wie sieht denn dein SQL Befehl aus, welches dir die Daten im DBGrid liefert. Übrigens noch was. Persönlich vermeide ich immer das Verwenden von Mastersource etc. Bedenke dabei, daß sämtliche Daten erst beim Client gefiltert werden. Bei großen Datenmengen ist dann wohl jedesmal Kaffee kochen angesagt, wenn du die Tabellen öffnest. Gruß, |
Re: Mehrere MasterSources von einer Tabelle??
Zitat:
|
Re: Mehrere MasterSources von einer Tabelle??
Zitat:
Gruß |
Re: Mehrere MasterSources von einer Tabelle??
@ Jelly
Ich hab die RequestLive-Eigenschaft auf true gesetzt, ich bekomme aber immer den Fehler, das er nicht mehrere Datenquellen über das Query aktualisieren kann. Ich hab jezt das mit dem Hinzufügen von Datensätzen in die Verbaut-Tabelle über ein weiteres DBgrid, in dem ich die Artikeltabelle darstelle, gelöst. Beim Doppelklick auf einen Datensatz wird dessen Inhalt und die aktuelle Auftragsnummer in die Verbaut-Tabelle übertragen. Trotzdem müsste ich in das Verbaut-dbgrid noch die Seriennummer eintragen können, wobei er mich ja wie gesagt anschreit. Mit TUpdateSQL hab ich noch nicht gearbeitet. :duck: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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 by Thomas Breitkreuz