Zugriff auf Alias Namen nicht möglich?

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Zugriff auf Alias Namen nicht möglich?

Beitrag von satmax »

Bei komplexeren Abfragen kommt man um die Verwendung von Alias Namen nicht herum,

Beispiel (Namen teilweise verändert):

Code: Alles auswählen

SELECT  a.AuftragNr,  t.Lad, t._id, t.Firma, t.Land, t.Ort, ku.Name1, FR.Name1, fzg.Kenn
FROM Auftrag a 
JOIN TOPos t ON a._ID = t._ID_Auftrag 
JOIN Adressen AS ku ON ku._id = a._ID_Kunde
LEFT OUTER JOIN Adressen AS fr ON fr._ID = a._ID_Fra
LEFT OUTER JOIN Fah AS fzg ON fzg._ID = a._ID_Fah
WHERE a.Status > 2 AND a.Status < 7 
ORDER BY AuftragNr DESC;
Leider ist es mir nicht möglich, per fieldGet("t.Firma" ) auf das Feld zuzugreifen. Per fieldGet(4) kann ich auf das Feld t.Firma zugreifen was aber sehr fehleranfällig ist.

Korrektur: Leider ist es mir nicht möglich, per fieldPos("t.Firma" ) auf das Feld zuzugreifen. Per fieldPos(4) kann ich auf das Feld t.Firma zugreifen was aber sehr fehleranfällig ist.


Gibt es eine Möglichkeit zum Beispiel das Feld "t.Firma" per Namen abzufragen?


Gruß
Markus
Zuletzt geändert von satmax am Mo, 02. Dez 2013 20:12, insgesamt 1-mal geändert.
Gruß
Markus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von Tom »

Code: Alles auswählen

FieldGet(FieldPos("t.Firma"))
Herzlich,
Tom
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von satmax »

Darauf bin ich schon gekommen, ;) nur geht das nicht. :(
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von satmax »

War natürlich die falsche Fragestellung, ich meinte ich kann mit FieldPos("t.Firma") das Feld nicht abfragen. Bei mir funktioniert Fieldpos nur für Felder ohne Alias wie FieldPos("Firma"). In obigen Fall komme ich um den Alias aber nicht herum.

Gruß
Markus
Gruß
Markus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von Tom »

Das wäre ja auch eher t->(FieldPos("Firma")), aber das funktioniert natürlich nicht, weil Du überhaupt nicht auf "t" zugreifst, sondern auf das Ergebnis des Statements (oder doch nicht?). Aber es gibt doch die Möglichkeit, der Rückgabe des Selects einen Alias zu verpassen, oder? Dann wäre es FieldGet(SelectAlias->(FieldPos("t.Firma"))) oder so. Meine ich.
Herzlich,
Tom
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von georg »

Hallo,


wenn der SQL-Server den Zugriff auf einen qualifizierten Namen nicht erlaubt, solltest Du das Feld mit AS mein_besonderer_name definieren, dann sollte der Zugriff über diesen "Alias" (ich verwende den Begriff wegen der Vorbesetzung in der xBase-Sprache nicht) möglich sein:

Code: Alles auswählen

SELECT  a.AuftragNr AS aauftragsnr,  t.Lad AS blad, t._id AS c_id, t.Firma AS dFirma, t.Land AS xLand, t.Ort AS ORT, ku.Name1 AS NameKunde1, FR.Name1 AS FrName1, fzg.Kenn AS KennFzg
Ich habe bewusst mit den AS Bezeichnern gespielt, da es hier nur die normalen SQL-Namenskonventionen zu beachten gibt.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Zugriff auf Alias Namen nicht möglich?

Beitrag von satmax »

@Georg
Danke, Deine Variante funktioniert.

@Tom
Deine 2. Variante habe ich noch nicht versucht.


Gruß
Markus
Gruß
Markus
Antworten