AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Aktualisierung von 2 Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Aktualisierung von 2 Tabellen

Ein Thema von HartiMcFly · begonnen am 26. Okt 2006 · letzter Beitrag vom 26. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#1

Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:02
Datenbank: Firebird • Zugriff über: IB Komponenten
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
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:09
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:12
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.
Markus Kinzler
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#4

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:17
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:29
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.ä).
Markus Kinzler
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#6

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:36
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:39
Warum dann 2 Tabellen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:42
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#9

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:43
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Aktualisierung von 2 Tabellen

  Alt 26. Okt 2006, 07:45
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
  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 18:55 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