AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Master-Detail-Verknüpfung
Thema durchsuchen
Ansicht
Themen-Optionen

Master-Detail-Verknüpfung

Ein Thema von barnti · begonnen am 3. Sep 2003 · letzter Beitrag vom 4. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 14:28
Hallo,

ich Versuche eine Master-Detail-Verknüpfung hinzubekommen, habe aber so meine Verständnisprobleme. Dazu folgendes:

2 Tabellen: eine mit Kunden, die andere mit dessen Standorten. Eine 1 zu n Beziehung.

Mein Anliegen ich möchte in einer DBLookupComboBox die Kunden stehen haben. Bei Auswahl eines Kunden dann dessen Standorte in einem DBGrid anzeigen lassen.

Frage: lässt sich das mit Query Komponenten lösen? denn ich möchte nicht immer alle Inhalte verwenden.

Und weiter: wie lässt sich ein Kunde und dessen Standorte beim OnShow-Event voreinstellen?

Ich glaub ich habe eine Blockade!?

Danke für einen Denkanstoß...

Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 15:22
Hallo,

Nachtrag:

Die Einstellungen sind bisher:

QueryKunden:
Database: Meine DB
SQL: Select * from Kunden

Query Standorte:
Datenbank: Meine DB
SQL: Select * from Standorte

Das Grid ist über die Datasource mit der QueryStandorte verbunden

Die DBLookUpComboBox über die DatasourceKunden mit der QueryKunden

Noch gibt es aber keine Verbindung zwischen beiden Querys! Wo setze ich diese Eigenschaft? In der Datasource der einen Query?

Please help

Grüße,

Barnti
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 15:35
Hi,

du brauchst erstmal 2 Query 2 DataSource + die Restelemente für die Verbindung.

1. Query1_getKundenNamen: alle Kunden ermitteln die es gibt
DS1_getKundenNamen: dazugehörige DS

2. DS1_getKundenNamen in DBLookUpComboBox als ListSource definieren
3. ListField bestimmen (das was in Combo angezeigt werden soll)

4. Query2_getStandorte: alle Standorte inkl. der NamenID
(zu welchem Kunden der Standort gehört.

5. Ds_getStandorte (DataSource von Query2) als Datasource der
DBComboBox definieren und Datafield auf die NamenID setzen

6. KeyField des DBCombo auf das Feld setzen das in Datafield angeben ist

ich glaub so müsste es funktionieren. Probiers mal
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 15:36
Man nehme:

Table: Kunden
Felder: IdKunden,Name

Tabelle: Standorte
Felder: IdStandorte,Ortsname

Tabelle: KundenStandorte
Felder: IdKunden,IdStandorte

Dann Projekt i.A. öffnen
und ein bisser auf die Propertys gucken.

Der Geck ist, das die Query2 als DataSource die DataSource1 hat,
welch an Query1 gebunden ist.
immer, wenn sich nun in Query1 der Datensatzzeiger verändert (durch cklicken auf DbComboBox) wird der Query2 der Parameter IdKunden (erkennbar am Doppelpunkt im SQL-Text) übergeben und die Ergebnismenge der Query2 aktualisiert.

hoffe, es hülft...
Angehängte Dateien
Dateityp: zip project1_122.zip (1,5 KB, 26x aufgerufen)
Tim Leuschner
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 15:37
Um deine letzte Frage zu beantworten:
die Verbindung wird über Keyfield=Datafield der
DBLookUpComboBox hergestellt
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 16:05
hi,

@ Generalissimo:

Das kann nicht funktionieren, da Datasource eine Tabelle beschreibt...

@ Leuselator:

Das klingt doch schon sehr vielversprechend! Ich werde gleich mal basteln.

Bedeutet das, ich muss eine DBComboBox nutzen nicht eine DBLookUp...?

Danke erst mal, ich probier erst mal.

Gruß,

Barnti
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 16:15


erläutere mir das mal bitte näher, was du damit meinst
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#8

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 16:24
DbLoockUp benutzt Du in folgender Situation: (Beispiel)

Tabelle1: Kunden
Felder: IdKunden,Name,idKategorie

Tabelle2: Kategorie
Felder: idKategorie,Bezeichnung

Inhalt Tabelle 1:
1,'Meier' ,1
2,'Schulze',2
3,'Müller' ,1
4,'Schmidt',3

Inhalt Tabellle 2:
1,'Toller Kunde'
2,'Ganz toller Kunde'
3,'Unglaublich supertoller Kunde'

(nent man glaube ich Master-Detail-Verknüpfung)
dann würdest Du eine TQuery mit anhängiger TDatasource auf Tabelle 1 setzen:
select * from Kunden und ebenso eine TQuery mit angehangener TDataSource uf Tabelle 2:
select * from Kategorie auf deinem TForm platzierst Du nun DbEdits, die auf TDataSource1 gelinkt sind und eine DbLookUpComboBox, die auf DataSource1 gelinkt ist. Als DataField gibst Du dort idKategorie an, als ListSource die DataSource2, als KeyField das Feld IdKategorie und als ListField das Feld Bezeichnung - fertig
Angehängte Dateien
Dateityp: zip project1_197.zip (4,5 KB, 18x aufgerufen)
Tim Leuschner
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 16:26
Hallo nochmal,
ich habe jetzt mal die Einstellungen wie im Beispiel übernommen. Dazu folgendes:

QueryKunde: Select * from Kunde

QueryStandort: SELECT DISTINCT Standort.*, Kunde.*
FROM Standort Standort, Kunde Kunde
where Standort.Kunde_ID= :Kunde_ID

Bei den Parametern der QueryStandort habe ich einen Parameter Kunde_ID angelegt.

Jetzt erscheint beim Start immer die Fehlermeldung:

QueryKunde: Field Kunde_ID not found

Was kann ich tun (außer, dass ich mal ne Pause machen sollte)?

Barnti
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Master-Detail-Verknüpfung

  Alt 3. Sep 2003, 16:31
genau wie Leuselator es erklärt hat meinte ich es auch

@barnti: schau mal nach ob der ":" wirklich davor ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 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