Entwickler-Ecke

Datenbanken - 1:n Verknüpfung mit ADO Komponenten


Quake User - Di 24.11.09 20:59
Titel: 1:n Verknüpfung mit ADO Komponenten
Ich habe 2 Tabellen einer MS SQL Datenbank und greife auf diese mit ADO Komponenten zu.
Nun ist die Beziehung zwischen den Tabellen 1:n. Ich möchte also bspw. alle "Telefonnummern" zu jedem "Kunden" anzeigen.

- Ich verwende eine "ADOConnection1" um die Anbindung zur Datenbank zu schaffen.
- Des weiteren ein "ADODataSet1" in der als Connection die ADOConnection steht und die SQL Abfrage (select * from Kunden;).
- Außerdem eine "DataSource1" in der als Dataset das ADODataSet1 steht.
- und als Letztes ein "DBGrid1" in dem als Datasource die DataSource1 steht.

Benötige ich eventuell für die zweite Tabelle nun noch ein zweites ADODataSet2? und noch eine zweite Datasource? Ich habe hier das Konzept dieser komponenten noch nicht verstanden.

Wie realisiere ich die 1:n Verknüpfung?

Mit den besten Grüßen


ene - Mi 25.11.09 08:13

Hi,

ändere doch das DataSet auf SELECT * FROM Kunden INNER JOIN Telefonnummern ON Kunden.KundenID = Telefonnummern.KundenID.


Quake User - Do 26.11.09 03:46

Ich habe 2 DBGrid. In einem möchte ich alle Firmen anzeigen und im zweiten DBGrid möchte ich alle Telefonnummern zu der jeweiligen Firma anzeigen.

Ich benötige also sicher 2 Select Statements. Die Frage ist, ob ich dafür nun auch 2 ADODataSet benötige oder eventuell 2 DataSource?

Früher habe ich solche Master-Detail-Verknüpfungen mit Hilfe der BDE dadurch realisiert, dass ich die "MasterSource" eingestellt habe und mit dem "Feldverbindungsdesigner" die Datenfelder für die Keys ausgewählt und verknüpft habe.

Bei ADO, scheint das nun so nicht mehr zu funktionieren.


ene - Do 26.11.09 08:54

Da würde ich dann das zweite Dataset für nehmen und mit dem Wert aus DBGrid1 als Parameter arbeiten.


Quake User - Mo 30.11.09 01:26

user profile iconene hat folgendes geschrieben Zum zitierten Posting springen:
Da würde ich dann das zweite Dataset für nehmen und mit dem Wert aus DBGrid1 als Parameter arbeiten.


Hast Du ggf. ein kurzes Beispiel?


Quake User - Mo 30.11.09 03:44

Ich habe eine Lösung und ein relativ gutes Tutorial hier gefunden:
http://www.devarticles.com/c/a/Delphi-Kylix/The-ADOQuery-Component/