Autor Beitrag
sunnyandy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Do 13.09.07 08:13 
Hallo!

Ich benutze die Ado-Komponenten, um eine Ms Sql 2000 Datenbank anzusteuern.

Ein ganz einfacher Tabellenjoin von mir ist:
ausblenden SQL-Anweisung
1:
select * from kunde k1 JOIN kunde k2 ON (k1.ehepartner = k2.kunden_nr);					


Mit dem Recordset der TAdoCommand versuche ich nun auf ein Field zuzugreifen:
ausblenden Delphi-Quelltext
1:
2:
Kunde1.Vorname := rs.Fields.Item['k1.vorname'].Value;
Kunde2.Vorname := rs.Fields.Item['k2.vorname'].Value;


Da ich einen Join verwende, muss ich ja unterscheiden, ob ich Felder von Tabelle k1 oder k2 möchte (Da die Felder ja nicht eindeutig sind). Warum funktioniert das nicht mit der Punkt Trennung 'k1.vorname' (Ist das nicht Sql-Standard)? Es gibt einen Fehler, dass er das Feld nicht finden kann. Habe schon alle Möglichkeiten ausprobiert, auf die Felder zuzugreifen, aber leider bin ich kein Stückchen weitergekommen.

Vielleicht habt ihr ja einen Tipp!
Danke im Voraus!
Gruß, Andy
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 13.09.07 08:29 
ausblenden SQL-Anweisung
1:
select k1.vorname as vorname1, .., k2.vorname as vorname2 from kunde k1 JOIN kunde k2 ON (k1.ehepartner = k2.kunden_nr);					

_________________
Markus Kinzler.
sunnyandy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Do 13.09.07 11:27 
Hallo!
Danke für die Antwort.
OK das heißt, ich muss wirklich jedes Feld einzeln angeben? In MySql konnte ich trotz der übergreifenden SELECT* - Anweisung einzelne Tabellen ansteuern...
Schade!
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 13.09.07 11:30 
ausblenden SQL-Anweisung
1:
select * ...					

sollte man sowieso nicht verwenden. das gilt im insbesonderen bei Joins

_________________
Markus Kinzler.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Do 13.09.07 16:19 
user profile iconsunnyandy hat folgendes geschrieben:
OK das heißt, ich muss wirklich jedes Feld einzeln angeben? In MySql konnte ich trotz der übergreifenden SELECT* - Anweisung einzelne Tabellen ansteuern...

Ist ja auch 'ne andere DB und nicht alles ist bis ins kleinste im SQL-Standard festgelegt.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 13.09.07 17:53 
Du kannst natürlich weiterhin die einzelnen Felder ansteuern. Um zu wissen, was ADO aus den mehrdeutigen Feldnamen macht, reicht ein Rechtsklick auf so eine Query-Komponente und dann der Menüpunkt 'Alle Felder hinzufügen' oder wie das auf Deutsch heißt (hab ein englisches Delphi).

Ich vermute, das die mehrdeutigen Feldnamen durchnummeriert werden. Prüf das doch.

_________________
Na denn, dann. Bis dann, denn.