AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argument
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argument

Ein Thema von Karstadt · begonnen am 8. Feb 2006 · letzter Beitrag vom 16. Feb 2006
Antwort Antwort
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

Hilfe! Lookupfeld und TVariant (Fehler) Ungültiges Argument

  Alt 8. Feb 2006, 14:29
Datenbank: masql • Version: 4 • Zugriff über: -
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!
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#2

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

  Alt 8. Feb 2006, 14:48
Compiler- oder Laufzeitfehler? Und wo genau?
Gruß, Jan
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#3

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

  Alt 8. Feb 2006, 15:58
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?
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#4

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

  Alt 8. Feb 2006, 16:33
Zitat von Karstadt:
Wenn ich das in Try Except setzen werden die Daten richtig übergeben, bloß da kommt kein FMeldung.
Dann ist doch alles ok, oder ? Vielleicht steht grad einer auf meiner Leitung

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...
Gruß, Jan
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#5

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

  Alt 9. Feb 2006, 23:33
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!
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#6

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

  Alt 16. Feb 2006, 11:51
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 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