Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Aktualisierung von 2 Tabellen (https://www.delphipraxis.net/79653-aktualisierung-von-2-tabellen.html)

HartiMcFly 26. Okt 2006 08:02

Datenbank: Firebird • Zugriff über: IB Komponenten

Aktualisierung von 2 Tabellen
 
Morgen,

ich habe mir in einem IBQuery eine SQL Anweisung erstellt, welche mir Daten aus 2 Tabellen ausließt.
Ich zeige mir diese Daten in einem DBGrid an. Funktioniert alles soweit wunderbar.

Wenn ich mich jetzt aber an das IBUpdate begebe, komme ich ins stocken.
Wenn ich mir den SQL Code dort automatisch generieren lasse, so will er immer nur auf eine Tabelle zugreifen.

Also werde ich die SQL Anweisung wohl per Hand schreiben müssen.

Kann mir da einer von euch bitte einmal einen kurzen Anschub in die richtige Richtung geben?

Hier sind mal die beiden Anweisungen für die Tabelle. Diese müßte ich jetzt zusammenführen.

Select
ID,
TELEFON,
FAX,
RAUM
from TELEFON
where
TELEFON = :TELEFON and
FAX = :FAX and
RAUM = :RAUM

Und die nächste Tabelle

Select
NACHNAME
from STAMMDATEN
where
NACHNAME = :NACHNAME

Kann ich diese beiden Anweisungen per Join etc. zusammenbringen?

Danke Patrick

chaosben 26. Okt 2006 08:09

Re: Aktualisierung von 2 Tabellen
 
Höchstwahrscheinlich kannst du die beiden Tabellen joinen. Dazu musst du (oder besser wir) die Felder kennen, die in beiden Tabellen gleich sind, bzw. die Verbindung herstellen.

Das Beste wäre jetzt also, wenn du uns die Struktur der Tabellen verrätst.

mkinzler 26. Okt 2006 08:12

Re: Aktualisierung von 2 Tabellen
 
Anhand deiner Abfragen ist kein Zusammenhang zwischen den beiden Tabellen ersichtlich. Imhi ist ein dein Problem wohl nicht mit einen join zu lösen.
Wie Bejamin schon gepostet hat, wären nahere Details sinnvoll/notwendig.

HartiMcFly 26. Okt 2006 08:17

Re: Aktualisierung von 2 Tabellen
 
Die Tabellen sehen folgendermaßen aus.

Tabelle STAMMDATEN
Felder ID, NACHNAME ( weitere Felder, die benötige ich aber nicht)

Tabelle TELEFON
Felder ID, TELEFON, FAX, RAUM

die Tabellen sind über das Feld ID verbunden


Meine SQL Anweisung im Query sieht so aus

select STAMMDATEN.NACHNAME, TELEFON.TELEFON, TELEFON.FAX, TELEFON.RAUM FROM STAMMDATEN
left outer JOIN TELEFON ON STAMMDATEN.ID = TELEFON.ID


Reicht dass?

mkinzler 26. Okt 2006 08:29

Re: Aktualisierung von 2 Tabellen
 
Deine Struktur ist gefährlich! Ich würde dir Raten die Telefontabelle um eine FK-Feld zu erweitern, welches dann mit der ID der Stammdatentabelle verknüpft ist.
In deiner Struktur kann ich auch keinen Sinn erkennen, da sie ja nur 1-1 Verbindungen zuläßt, d.h. der Vorteil meherer Telefonnummern pro Person zu erfassen entfällt.
Desweiteren würde ich das Feld Raum in die Stammdatentabelle verlegen und die Felder Telefon, Fax verschmelzen. Damit meine ich ein Feld Nummer und ein Feld, welches die Art angibt ( Telefon, fax, Mobil, ...) und dann pro Nummer einen Eintrag in der Telefon (besser Kommunikation o.ä).

HartiMcFly 26. Okt 2006 08:36

Re: Aktualisierung von 2 Tabellen
 
Es gibt nur eine 1-1 Verbindung, es wird pro Person nur eine Eingabe im Feld Telefon geben. Es sollen hier nur die Büro internen Nr. eingetragen werden. und hinterher in einer HTML Datei fürs Intranet ausgegeben werden.

mkinzler 26. Okt 2006 08:39

Re: Aktualisierung von 2 Tabellen
 
Warum dann 2 Tabellen?

chaosben 26. Okt 2006 08:42

Re: Aktualisierung von 2 Tabellen
 
Die "richtige" Lösung lautet also:
Bereinige erstmal die DB-Struktur (Siehe Posts von mkinzler). Danach könnte dein Query etwa so aussehen:

SQL-Code:
select /*dies und das und jenes*/
from Stammdaten s
  inner join Kommunikation k
    on k.FKStammDaten=s.ID
where s.Nachname='blubb'
Die Tabelle Kommunikation enthält einen FK (FKStammDaten) auf die ID in den Stammdaten.

HartiMcFly 26. Okt 2006 08:43

Re: Aktualisierung von 2 Tabellen
 
Weil die Haupt Tabelle Stammdaten schon besteht.
Diese Daten hole ich aus einem anderen Programm, wo quasi die Personalverwaltung mit gemacht wird.
Leider kann ( darf )ich diese Tabelle nicht um die 3 Felder erweitern.

nahpets 26. Okt 2006 08:45

Re: Aktualisierung von 2 Tabellen
 
Unabhängig von der theoretischen Diskussion über die Sinnhaftigkeit der Konstruktion, versuch es mal mit

SQL-Code:
Select
ID,
TELEFON,
FAX,
RAUM
from TELEFON, STAMMDATEN
where TELEFON.ID = STAMMDATEN.ID
and  TELEFON   = :TELEFON
and  FAX       = :FAX
and  RAUM      = :RAUM
and  NACHNAME  = :NACHNAME
Stephan


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.
Seite 1 von 2  1 2      

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