Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Problem (https://www.delphipraxis.net/110406-und-schon-wieder-zeos-tzreadonlyquery-fieldvalues-problem.html)

BloodySmartie 17. Mär 2008 19:01

Datenbank: Posgresql • Version: 8.3 • Zugriff über: ZEOS DBO

Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Problem
 
Hallo liebe Mitglieder!

Ich habe ein Problem, das hier scheinbar schon öfters diskutiert wurde. Nachdem ich die Suchfunktion strapaziert und einige Lösungen ohne Erfolg ausprobiert habe, muss ich mich nun leider doch mit dem leidigen Thema an euch wenden.

Ich lese den Wert eines Feldes der Query-Ergebnismenge folgendermaßen aus:
Delphi-Quellcode:
//cre.phone_biz ist von Typ ansistring
crec.phone_biz:=utf8toansi(query.FieldValues['phone_biz']);
Wenn nun der Wert des Feldes phone_biz=NULL ist, wird mir die EVariantTypeCastError - Exception geworfen. Kann mir jemand ne möglichst elegante Methode geben, um dieses Problem zu lösen?

Danke!!

mkinzler 17. Mär 2008 19:06

Re: Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Probl
 
Entweder in der Abfrage (IIF, Case..when)
oder vorher abfragen:
Delphi-Quellcode:
if not query.FieldByName('phone_biz').isNull then crec.phone_biz:=utf8toansi(query.FieldByName('phone_biz').Value) else crec.phone_biz := '';

Peinhard 17. Mär 2008 19:13

Re: Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Probl
 
Ein VarToStr dazwischen müsste auch gehen:

Delphi-Quellcode:
crec.phone_biz:=utf8toansi(VarToStr(query.FieldValues['phone_biz']));

BloodySmartie 17. Mär 2008 19:16

Re: Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Probl
 
Aaaah! Cool! vartostr! Die Erkenntnis ist über mich gekommen. Sehr kurz, sehr elegant. Vielen Dank! Und vielen Dank auch für die andere Lösung - ich hatte es mit
Delphi-Quellcode:
query.FieldByName('phone_biz').isempty
versucht, weil ich das auf die Schnelle in der Hilfe fand. Dann gabs aber wieder ne andere Exception.

Peinhard 17. Mär 2008 19:21

Re: Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Probl
 
Ich kannte jetzt die ZEOS-Komponenten nicht, aber da sie der üblichen Nomenklatur zu folgen scheinen, könntest du natürlich auch gleich mit FieldByName().AsString abfragen...

BloodySmartie 17. Mär 2008 19:28

Re: Und schon wieder: ZEOS TZReadOnlyQuery.fieldvalues Probl
 
Du hast Recht, Peinhard - damit gehts sogar noch eleganter*juchu*


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