Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldnamen von 2 Tabellen verknüpfen? (https://www.delphipraxis.net/48373-feldnamen-von-2-tabellen-verknuepfen.html)

smart 24. Jun 2005 07:44

Datenbank: ABS • Version: 488 • Zugriff über: Datascore

Feldnamen von 2 Tabellen verknüpfen?
 
Delphi-Quellcode:
Tabelle1

  Vorname | Name       | Straße | Ort
  ------------------------------------
1  Udo     Mustermann
2  Silke   Musterfrau



Tabelle2

  Anrede
  ------------------------------------
 1 Herr
 2 Frau
  ….
Wie kann ich die Feldnamen von Tabelle1 mit Tabelle2 so verknüpfen, dass Herr und Frau richtig angezeigt werden?

marabu 24. Jun 2005 07:51

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Du musst dazu das Schlüsselfeld von Tabelle 2 als Fremdschlüssel in Tabelle 1 aufnehmen. Anschließend kannst du die beiden Tabellen über einen Equi-Join verknüpfen:

SQL-Code:
SELECT t1.Anrede, t2.Vorname, t2.Name
FROM Tabelle1 t1, Tabelle2 t2
WHERE t1.id = t2.t1_id
Grüße vom marabu

smart 24. Jun 2005 08:24

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Zitat:

Zitat von marabu
Du musst dazu das Schlüsselfeld von Tabelle 2 als Fremdschlüssel in Tabelle 1 aufnehmen. Anschließend kannst du die beiden Tabellen über einen Equi-Join verknüpfen:

SQL-Code:
SELECT t1.Anrede, t2.Vorname, t2.Name
FROM Tabelle1 t1, Tabelle2 t2
WHERE t1.id = t2.t1_id
Grüße vom marabu

Da bekomme ich immer so eine dumme Fehlermeldung:
SQL-Code:
Search condition is not applicable
Heike.

marabu 24. Jun 2005 08:37

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Wahrscheinlich, weil du die entsprechenden Schlüsselfelder noch gar nicht in deinen Tabellen angelegt hast.

smart 24. Jun 2005 08:41

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Zitat:

Zitat von marabu
Wahrscheinlich, weil du die entsprechenden Schlüsselfelder noch gar nicht in deinen Tabellen angelegt hast.

Ja, Du hast Recht. Kann man die noch im Nachhinein anlegen ohne die Tabelle zu beschädigen?

marabu 24. Jun 2005 09:20

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Nachträgliches ändern der Tabellenstruktur - dazu wünscht man sich ein Datenbankverwaltungs-Werkzeug. Wenn du keines hast, dann wirst du eine Prozedur schreiben müssen:

Delphi-Quellcode:
[p-code]
CreateNewTable; // jetzt mit Primärschlüssel
OpenOldTable;
while not oldTable.Eof do begin
  newTable.Edit;
  foreach oldField in oldFields do
    newFields.FieldByName(oldField.Name).Value := oldField.value;
  newTable.Post;
  oldTable.nextRecord;
end;
[/p-code]
Beim Primärschlüsselfeld musst du dir noch überlegen, wie die eindeutigen Schlüssel erzeugt werden sollen.

marabu

smart 24. Jun 2005 09:26

Re: Feldnamen von 2 Tabellen verknüpfen?
 
Zitat:

Zitat von marabu
Nachträgliches ändern der Tabellenstruktur - dazu wünscht man sich ein Datenbankverwaltungs-Werkzeug. Wenn du keines hast, dann wirst du eine Prozedur schreiben müssen:

Delphi-Quellcode:
[p-code]
CreateNewTable; // jetzt mit Primärschlüssel
OpenOldTable;
while not oldTable.Eof do begin
  newTable.Edit;
  foreach oldField in oldFields do
    newFields.FieldByName(oldField.Name).Value := oldField.value;
  newTable.Post;
  oldTable.nextRecord;
end;
[/p-code]
Beim Primärschlüsselfeld musst du dir noch überlegen, wie die eindeutigen Schlüssel erzeugt werden sollen.

marabu

Vielen Dank, damit komme ich schon weiter. Die Tabellen habe ich nicht selbst angelget, sind von einer Freundin. In den Tabbellen sind fast 400 Einträge. Wäre ein Jammer wenn man die neu eingeben müsste.

Heike.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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