Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argument (https://www.delphipraxis.net/62706-hilfe-lookupfeld-und-tvariant-fehler-ungueltiges-argument.html)

Karstadt 8. Feb 2006 13:29

Datenbank: masql • Version: 4 • Zugriff über: -

Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argument
 
procedure Tdm.tabelleCalcFields(DataSet: TDataSet);

var Ergebnis : Variant;
Ergebnis:=query.Lookup('id','1','name_z1;name_z2;p lz;ort');
Tabelle.FieldByName('beschreibung').AsString := Ergebnis[0]+' '+Ergebnis[1]+', '+Ergebnis[2]+' '+Ergebnis[3];


FMeldung Ungültiges Argument! Warum!

Der Jan 8. Feb 2006 13:48

Re: Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argum
 
Compiler- oder Laufzeitfehler? Und wo genau?

Karstadt 8. Feb 2006 14:58

Re: Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argum
 
Delphi-Quellcode:
Tabelle.FieldByName('beschreibung').AsString := Ergebnis[0]+' '+Ergebnis[1]+', '+Ergebnis[2]+' '+Ergebnis[3];
Laufzeitfehler!

Wenn ich das in Try Except setzen werden die Daten richtig übergeben, bloß da kommt kein FMeldung.

Woran kann das liegen?

Der Jan 8. Feb 2006 15:33

Re: Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argum
 
Zitat:

Zitat von Karstadt
Wenn ich das in Try Except setzen werden die Daten richtig übergeben, bloß da kommt kein FMeldung.

:wiejetzt: Dann ist doch alles ok, oder ? Vielleicht steht grad einer auf meiner Leitung :gruebel:

Kommt die Meldung in deinem Source oder vielleicht in Variants.pas?
Bin mir jetzt nicht ganz sicher, aber vielleicht lassen sich die Elemente aus dem VariantsArray nicht einfach mit "+" verknüpfen... ? Glaub ich aber weniger...
'id' ist sicher integer? Vielleicht ('id', 1, ...) statt ('id','1',...)
Sonst wüßt ich jetzt auch nicht mehr...

Edit: Das mit der Veknüpfung der Variants mit "+" geht, habbich gerade bei mir getestet...

Karstadt 9. Feb 2006 22:33

Re: Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argum
 
Zitat:


procedure Tdm.tabelleCalcFields(DataSet: TDataSet);

var Ergebnis : Variant;
Ergebnis:=query.Lookup('id','1','name_z1;name_z2;p lz;ort');
Tabelle.FieldByName('beschreibung').AsString := Ergebnis[0]+' '+Ergebnis[1]+', '+Ergebnis[2]+' '+Ergebnis[3];


Wenn Irgendein Feld leer ist dann kommt es zu diese FMeldung! Probier aus.

Lösung If VarIsNull muss geprüft werden! :wall:

Karstadt 16. Feb 2006 10:51

Re: Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argum
 
Die Lösung lautet:

Delphi-Quellcode:

var FI: Stinng;
Ergebnis: Variant;


IF not VarIsNull(Ergebnis[0]) Then FI := VarToStr(Ergebnis[0]);
VarIsNull und dann VarToStr


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