Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ZEOS ZQuery - getFieldByName mit Tabellenprefix? (https://www.delphipraxis.net/127542-zeos-zquery-getfieldbyname-mit-tabellenprefix.html)

cytrinox 15. Jan 2009 09:36

Datenbank: Firebird/MSSQL • Zugriff über: ZEOS 6.6.4

ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
Hi,

ich nehme mal an das ist eine völlig einfache Sache, aber ich komme grad nicht drauf.

Z.B. habe ich ein SQL Statement:
SQL-Code:
SELECT pestamm.id, pedata.id, ... FROM pestamm INNER JOIN...
Nun möchte ich die Werte für pestamm.id und pedata.id herausziehen - über ZQuery.getFieldByName('pestamm.id').asInteger;

Da wird aber eine Exception erzeugt: "Field not found pestamm.id". Wenn ich die einzelnen Fields im Query durchgehe und mir FullName ausgeben lasse, erscheint auch nur "id", "id", <andere felder> und eben nicht die Felder incl. Tabellenprefix.

Gibts da eine Möglichkeit oder einen anderen Syntax?

Übrigens verarbeite ich das Statement nur, erzeugt wird es extern. Ich kann daher nicht nicht mit einem Alias für die einzelnen Columns arbeiten.


Was mir auch noch aufgefallen ist: ZQuery.Filter akzeptiert ebenfalls keine Prefixe:
Delphi-Quellcode:
ZQuery.filter := 'pestamm.id = 5'
schlägt fehl mit "Unknow Symbol '.'".


Was jemand Rat?

[edit=mkinzler] Tags eingefügt, Mfg, mkinzler[/edit]

mkinzler 15. Jan 2009 10:16

Re: ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
Du könntest die Felder nicht per Namen sondern Position in der Abfrage auswählen

mikhal 15. Jan 2009 10:21

Re: ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
Vergib für deine ID's Aliase:
SQL-Code:
SELECT pestamm.id as pestid, pedata.id as pedid, ...
Jetzt greifst du über die Aliase zu sowohl beim Auslesen der Daten als auch bei der Filterung.

Grüße
Mikhal

mkinzler 15. Jan 2009 10:26

Re: ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
Zitat:

Zitat von mikhal
Vergib für deine ID's Aliase:
SQL-Code:
SELECT pestamm.id as pestid, pedata.id as pedid, ...
Jetzt greifst du über die Aliase zu sowohl beim Auslesen der Daten als auch bei der Filterung.

Grüße
Mikhal

Zitat:

Zitat von cytrinox
Übrigens verarbeite ich das Statement nur, erzeugt wird es extern. Ich kann daher nicht nicht mit einem Alias für die einzelnen Columns arbeiten.


mikhal 15. Jan 2009 10:38

Re: ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
:wall: Tja, habe ich übersehen...

Grüße
Mikhal

cytrinox 15. Jan 2009 11:12

Re: ZEOS ZQuery - getFieldByName mit Tabellenprefix?
 
Zitat:

Zitat von mkinzler
Du könntest die Felder nicht per Namen sondern Position in der Abfrage auswählen

Ja gut, aber ich brauche ja speziell dieses Feld. Also müsste ich mir erstmal den Index/ColumnNumber für pestamm.id herausbekommen. Und wie mache ich das incl. Prüfung ob id aus pestamm oder pedata kommt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz