AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SELECT über 2 Tabellen - Feldzugriff?
Thema durchsuchen
Ansicht
Themen-Optionen

SELECT über 2 Tabellen - Feldzugriff?

Ein Thema von MarcusB · begonnen am 11. Aug 2004 · letzter Beitrag vom 11. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#1

SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:15
Hallo Leutz,

ich hätte da mal wieder ein kleines Problem.
Ich habe folgende Query :

 Dataset.SQL.Text := 'SELECT * FROM tabelle1 AS a, tabelle2 AS b'; ich wollte dann folgendermaßen auf das Ergebnis zugreifen :

einFeld := DataSet.FieldByName('a.feld1').AsString; Nun kommt der Fehler : "a.feld1 wurde nicht gefunden".

Was mache ich falsch?

Danke schon mal
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:21
ich glaube bei den feldnamen im result wird nicht mehr angegeben aus welcher tabelle diese sind da ja bei entsprechender anweisung das Feld in aus beiden tabellen genommen wird und als eine spalte dargestellt werden kann
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#3

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:28
Wie müsste denn das dann praktisch aussehen?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:35
Zitat von SirThornberry:
ich glaube bei den feldnamen im result wird nicht mehr angegeben aus welcher tabelle diese sind da ja bei entsprechender anweisung das Feld in aus beiden tabellen genommen wird und als eine spalte dargestellt werden kann
Wer soll das verstehen ? *singt* Das AS bezieht sich schon auf die Feldnamen. Nicht auf die Tabellennamen !
Dataset.SQL.Text := 'SELECT * FROM tabelle1 AS a, tabelle2 AS b'; Was ist zu tun ? Das AS weglassen. Das AS wird eher verwendet bei Berechnungen. Also gut beides gemischt. Ich brauche einen Wert, der aus 2 Tabellen errechnet wird :

Dataset.SQL.Text := 'SELECT A.NR, A.PREIS, B.MENGE, A.PREIS * B.MENGE AS GESPREIS FROM TABLE1 A, TABLE2 B ORDER BY A.NR');
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:37
Zitat von MarcusB:
Wie müsste denn das dann praktisch aussehen?
Einfach so:
  einFeld := DataSet.FieldByName('feld1').AsString; Bei mir geht das dann.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:39
Und wie werden die Felder benannt, wenn in beiden Tabellen ein Feld mit dem Namen "Feld1" vorhanden ist?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:44
Das habe ich doch geschrieben. A.Feld1 und B.Feld1
Gruß
Hansa
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#8

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:46
Danke schon mal für die Antworten. Funktioniert leider immer noch nicht

Ich habe mal das "AS" weggelassen, aber immer noch die selbe Fehlermeldung.
Nun habe ich mal die FieldList ausgegeben und da stehen alle Felder ohne die Tabellenbezeichnung "a." oder "b.", allerdings
sind die Felder, die in beiden Tabellen vorkommen mit "_1" gekennzeichnet.

Ich brauche aber alle Felder aus beiden Tabellen ohne aufwendige Unterscheidung ob ein Feld doppelt da ist oder nicht.

Das muss doch irgendwie gehen... oder steh ich nur auf'm Schlauch?
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:46
Zitat von Hansa:
Zitat von SirThornberry:
ich glaube bei den feldnamen im result wird nicht mehr angegeben aus welcher tabelle diese sind da ja bei entsprechender anweisung das Feld in aus beiden tabellen genommen wird und als eine spalte dargestellt werden kann
Wer soll das verstehen ? *singt* Das AS bezieht sich schon auf die Feldnamen. Nicht auf die Tabellennamen !
Dataset.SQL.Text := 'SELECT * FROM tabelle1 AS a, tabelle2 AS b'; Was ist zu tun ? Das AS weglassen. Das AS wird eher verwendet bei Berechnungen. Also gut beides gemischt. Ich brauche einen Wert, der aus 2 Tabellen errechnet wird :

Dataset.SQL.Text := 'SELECT A.NR, A.PREIS, B.MENGE, A.PREIS * B.MENGE AS GESPREIS FROM TABLE1 A, TABLE2 B ORDER BY A.NR');
*auch klugscheißen will* *g*

'AS' sagt nur aus, dass du in der Abfrage einer Spalte einen bestimmten Namen geben willst.
Im SQL Standard darf man 'AS' _NICHT_ für Tabellen aliase verwenden!
Da das TDataSet keine Ahnung von der Tabelle hat, aus der Spalte kommt, musst du die Spalten in der Abfrage eindeutig benennen.

Die 2. Möglichkeit sollte aber tunlichst vermieden werden.

SQL-Code:
SELECT A.Nr as SomeCol
      ,A.Preis "Noch eine Spalte"
      ,B.Menge Miep
      ,A.Preis * B.MENGE as GesPreis
FROM Table1 A
      ,Table2 B
ORDER BY A.Nr
Wesentlich besser ist aber der Zugriff über den Index.
SomeTDataSetDesc.Fields(1).AsInteger Edit: Ich hatte FiledByName(1)!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: SELECT über 2 Tabellen - Feldzugriff?

  Alt 11. Aug 2004, 12:46
Zitat von Hansa:
Das habe ich doch geschrieben. A.Feld1 und B.Feld1
Wenn ich SELECT * FROM Tabelle1, Tabelle2 mache!?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 11:53 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