AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verknüpften wert anhand der ID ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Verknüpften wert anhand der ID ausgeben

Ein Thema von Hausmarke · begonnen am 8. Apr 2013 · letzter Beitrag vom 12. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#1

Verknüpften wert anhand der ID ausgeben

  Alt 8. Apr 2013, 14:01
Datenbank: Firebird • Version: 2.1 • Zugriff über: TIBDatabase
Hallo werte ForenUser,

ich habe hier bereits sehr oft antworten auf meine fragen gefunden. Bisher hatte ich jedoch das glück das die fragen die ich hatte, bereits im Forum gestellt worden waren.
Leider konnte ich zu meiner aktuellen fragen nichts finden, bzw. wird wohl meine fragestellung bzw. meine suchbegriffe die Ergebnisse nicht weit genug eingegrenzt haben.

Zum Sachverhalt:
ich greife via TIBDatabase auf eine Firebird Datenbank mit mehreren tabellen zu.
In einer der Tabellen sind die Werte der anderen Tabellen durch die ID hinterlegt und auch durch Keys verknüpft.
Nun möchte ich bei der Ausgabe meiner haupttabelle, nicht die ID ausgeben sondern die Werte auf welche die hinterlegten ID´s verweisen.

Der einzige weg der sich mir momentan erschließt, ist eine Abfrage einzubauen welche die ID ausließt, die andere Tabelle öffnet, und dann den Übergebenen Wert bei der Ausgabe (die ID) durch den eigentlichen Inhalt ersetzt.
Aber dies erscheint mir relativ umständlich, zudem gehe ich davon aus, das durch dieses vorgehen das Programm schwerfälliger wird.
Gibt es evtl. eine andere, schnellere Lösung?

besten dank im voraus

Geändert von Hausmarke ( 8. Apr 2013 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#2

AW: Verknüpften wert anhand der ID ausgeben

  Alt 8. Apr 2013, 14:06
Lookup-Felder
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Verknüpften wert anhand der ID ausgeben

  Alt 8. Apr 2013, 14:30
Vielen Dank für die schnelle Antwort.

Ich werd mir das mal in der Hilfe anschauen.

wie ich es aktuell sehe, benötige ich dafür eine TTable komponente. Ich schätze das in dieser die Verknüpften Werte beider Tabellen hinterlegt werden.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Verknüpften wert anhand der ID ausgeben

  Alt 8. Apr 2013, 14:32
Wenn ich Dich richtig verstanden habe, hast Du eine "Masterjointable" in der alle Beziehungen zwischen deinen Datentabellen enthalten sind.
Also ungefähr so:
MJT
ID
ID_Dat1
ID_Dat2
ID_Dat3
ID_Dat4
..

Dat1
ID_Dat1
Daten

Dat2
ID_Dat2
Daten

Dat3
ID_Dat3
Daten

....


Das wäre nicht unbedingt optimal, aber durchaus handhabbar

Code:
select Dat1.Daten,Dat2.Daten,Dat3.Daten
from MJT
    ,Dat1
    ,Dat2
    ,Dat3
where MJT.ID_Dat1=Dat1.ID_Dat1
  and MJT.ID_Dat2=Dat2.ID_Dat2
...
usw
Gruß K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Verknüpften wert anhand der ID ausgeben

  Alt 9. Apr 2013, 13:00
Danke für den Vorschlag.

Meine Tabelle sieht dabei etwas einfacher aus, als beispiel:

Tab_Haus:
  • ID
  • Ort
  • BauartID - FK auf Tab_Bauart(ID)

Tab_Bauart:
  • ID
  • Bauart

mein ziel ist es im ausgabeformular anstatt der ID die in Tab_Bauart hinterlegte Bauart auszugeben.

ich werde es aller voraussicht nicht über die LookUpComboBox umsetzen, sondern über ein separates Formular, wodurch der User unmittelbar neue "Baustile" aufnehmen kann.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Verknüpften wert anhand der ID ausgeben

  Alt 9. Apr 2013, 13:13
Ich muß gestehen, daß ich nicht so recht verstehe worauf Du hinaus willst
a)Du verknüpfst Haus mit Bauart
Code:
select Haus.Ort,Bauart.Bauart
from Haus,Bauart
where Haus.ID_Bauart=Bauart.ID(+)
b) Du willst eine Liste aller vorhandenen Bauarten (ohne ID)
Code:
select Bauart from Bauart
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Verknüpften wert anhand der ID ausgeben

  Alt 10. Apr 2013, 06:34
im grunde löst die SQL abfrage das problem.

Ich hatte gehofft es gibt eine möglichkeit die Daten in Ihrer abhängigkeit im dataset zu belassen.


besten dank für die Hilfe
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Verknüpften wert anhand der ID ausgeben

  Alt 10. Apr 2013, 06:54
im grunde löst die SQL abfrage das problem.

Ich hatte gehofft es gibt eine möglichkeit die Daten in Ihrer abhängigkeit im dataset zu belassen.


besten dank für die Hilfe
Ich versteh nur Bahnhof
Markus Kinzler
  Mit Zitat antworten Zitat
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Verknüpften wert anhand der ID ausgeben

  Alt 10. Apr 2013, 07:17
bitte entschuldigt wenn ich mich etwas umständlich ausdrücke.
ich bin gerade dabei mir das alles wieder anzueignen, und es ist dann doch lange her, einiges neu und ich verwende evtl. nicht die korrekten begriffe.

im Grunde habe ich eine DB die über eine IBDatabase -> Datasource -> Dataset eingebunden ist.
Nun konnte ich bei meinem simplen Programm zur Adressverwaltung, ein DBgrid und ein paar DBEdits äußerst simple ansprechen und manipulieren, ohne das Daten aus Ihrer Abhängigkeit zueinander gerissen wurden.
Der nächste schritt ist die DB weiter auszuarbeiten und mit Keys zu versehen.

Ich hatte gehofft das ich über Komponenten die beiden Datasets, einmal die Daten die ausgegeben werden inkl. der ID die auf eine andere Tabelle verweist, und die dazu passenden daten der anderen Tabelle, verknüpfen kann.
Sodass beide datasets in Verbindung stehen, und sich das DBEdit o.ä., den passenden Datensatz zur ID selbst holt.

ich hoffe mein anliegen ist nun besser nachvollziehbar.

im prinzip ist es mit einer SQL abfrage auch schnell gelöst. aber da man ja gerade am anfang der lernphase bei weitem keinen überblick über die komponenten und deren möglichkeiten hat, dachte ich, ich frag mal.

Geändert von Hausmarke (10. Apr 2013 um 07:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#10

AW: Verknüpften wert anhand der ID ausgeben

  Alt 10. Apr 2013, 08:36
Ich hatte gehofft das ich über Komponenten die beiden Datasets, einmal die Daten die ausgegeben werden inkl. der ID die auf eine andere Tabelle verweist, und die dazu passenden daten der anderen Tabelle, verknüpfen kann.
Sodass beide datasets in Verbindung stehen, und sich das DBEdit o.ä., den passenden Datensatz zur ID selbst holt.
Eigentlich wiederhole ich mich nur ungern, aber Lookup-Felder sind offenbar genau das, was du suchst. Dazu musst du erst alle benötigten Datasets auf dem Form oder Datenmodul platzieren (z.B. Tab_Haus und Tab_Bauart) und in deinem Haupt-Dataset (Tab_Haus) alle Felder statisch anlegen (Doppel-Click auf das Tab_Haus und dann Strg-F). Dann fügst du ein neues Feld hinzu (Strg-N) und wählst bei Feldtyp "Nachschlagen" aus. Schlüsselfeld wäre z.B. BauartID, Datenmenge Tab_Bauart, Schlüssel wäre dann ID und Ergebnisfeld Bauart.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 03:57 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