Autor Beitrag
Fasi-Monster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Mo 07.10.02 17:40 
Hallo, ich habe da ein Problem, daß mich zum Wahnsinn treibt.
Ich habe 2 Tabellen(Paradox7), die über eine Dritte(P7) in einer n:m Beziehung zueinander stehen sollen. Jetzt will ich mit Delphi zugriffe machen. Kann mir einer sagen wie dass funzt oder wo was interessantes steht? Im Delphibuch ist das ein bisschen umständlich erklärt. Geht das auch ohne SQL? Das kann doch nicht sooo schwer sein?!?
:evil:
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Mo 07.10.02 18:34 
Ich habe im anderen Forum dazu einen Beitrag gefunden. Vielleicht hilft der Dir weiter www.swissdelphicente...;highlight=beziehung
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 07.10.02 19:43 
Hi
Fasi-Monster hat folgendes geschrieben:
Geht das auch ohne SQL?

Leider nicht.
Fasi-Monster hat folgendes geschrieben:

Das kann doch nicht sooo schwer sein?!? :evil:

Ist es eigentlich auch nicht. Aber dazu müsste man ein bisschen mehr über deine Tabellenstruktur wissen. Poste doch mal grob wie die aussieht.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 08.10.02 06:51 
Hallo Fasi-Monster,

das geht auch ohne SQL ist aber dann etwas aufwendiger. Ein Möglichkeit wäre eine Master - Detail Beziehung zwischen der ersten Tabelle und der Tabelle, die die n:m Bedingung enthält. Beispiel: 1. Tabelle ist die Personentabelle, 3. Tabelle eine Tabelle mit Städten und die 2. hält die Beziehung Personen:Städte fest und heißt wohnteIn. Wenn du jetzt eine Master - Detail Beziehung zwischen Personen und wohntIn erstellst, erhälst du alle Datensätze aus 2, die dieser Person zugeornet sind. Problematisch ist jetzt die Beziehung zur 3. Tabelle. Hier könntest du zwar auch eine Master - Detail Beziehung herstellen, würdest aber dann nur die Stadt angezeigt bekommen, die zu der "aktuell gewählten" Beziehung aus wohntIn passt. Es kann aber immer nur einen aktuellen Satz geben. Also müsstest du entweder die wohntIn Tabelle (bzw. die durch die MD Beziehung "gefilterten" Sätze dort) in einer Schleife durchlaufen oder du wählst die Möglichkeit, die 3. Tabelle NICHT über Master - Detail mit der 2. zu verbinden, sondern die 3. nur zu filtern. Aber auch dazu musst du die 2. Tabelle in einer Schleife durchlaufen.

ODER du lernst halt doch SQL :mrgreen: .

_________________
Live long and prosper
MrSpock \\//
Fasi-Monster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 08.10.02 14:02 
:(
Sorry, ich hab im Moment ein Brett vor dem Kopf.
Hier ein guter Vergleich:
Alle Paradox 7
Eine Tabelle : Schauspieler_Tabelle
1. Spalte : ID als Zähler
2. Spalte : Name als Alpha
Eine Tabelle : Film_Tabelle
1. Spalte : ID als Zähler
2. Spalte : Titel als Alpha
Eine Tabelle : Beziehung_Tabelle
1. Spalte : ID als Zähler
2. Spalte : SID {Fremdschlüssel} als Int
3. Spalte : FID {Fremdschlüssel} als Int
Ich suche mir über eine DBLookUpComboBox eine Person aus und will, dass alle Film, in denen er mitspielt, in einem DBGrid (muß aber nicht) gezeigt werden.
Also Tabel und DataSource für die DBLook...
Query + DataSource2. DBGrid mit DataSource2 und hinter´nen Button : ???
Bitte helft mir, das Seil hab ich schon geknüpft... :lol:
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Di 08.10.02 14:18 
Hi
Fasi-Monster hat folgendes geschrieben:

Sorry, ich hab im Moment ein Brett vor dem Kopf.

Haben wir doch alle öfter mal :D

Also, in die Query kommt folgende SQL-Anweisung:
ausblenden Quelltext
1:
2:
3:
4:
SELECT F.TITEL 
FROM Beziehung B
JOIN Filme F on (F.ID = B.FID) <== nachträglich korrigiert!!
WHERE B.SID = :ID

In den Eigenschaften Params der Query legst du für den Paramter ID den Datentyp Integer und Input fest.

Für den Button:
ausblenden Quelltext
1:
2:
3:
  Query.Active := False;
  Query.ParamsByName('ID').Value := DBLookupCombo1.KeyValue;
  Query.Active := True;


Ich hab das jetzt net getestet, aber eigentlich sollte es funktionieren.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Fasi-Monster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Mi 09.10.02 14:12 
:wink:
Alle Achtung Lothar,
ich glaube, ich brauche noch länger um diesen Stand zu erreichen.
Jedenfalls : Danke
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mi 09.10.02 14:15 
Na ja, ich mach ja auch schon seit Jahren fast nix anderes mehr als Datenbank-Programme 8)

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...