"ist kein Gültiger Gleitkommawert delphi
Fehlermeldung geworfen
` qConsulta2 := TQuery.Create(Application);
qConsulta2.DatabaseName := 'BaseDato';
qConsulta2.SQL.Text := 'select VALOR from PARAMETRO where codigoPARAMETRO = ''IVA'' ';
qConsulta2.open;
qCompraDetalle.FieldByName('PORCENTAJE_IVA').AsFloat:= qConsulta2.fieldbyname('valor').asfloat;
qConsulta2.close;
qConsulta2.free `
Dieser warf mich in der Ausführung diesen Fehler, und weiß nicht, warum, im Voraus vielen Dank für Ihre Zeit und Hilfe. Entschuldigen Sie mich für mein schlechtes Englisch.
- Immer noch mit BDE in 2013 ? Wow...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihr problem mit der
qConsulta2.fieldbyname('valor').asfloat
Von meinen Tests Ihre Fehler wird auftreten, wenn die VALOR Spalte ist text oder varchar in der Datenbank-Tabelle, und es enthält einen Null-oder null-Länge-Zeichenfolge.
Mein test bestehen, erstellen einer Tabelle mit VALOR_TEXT und VALOR_FLOAT Spalten in einer MSAccess-Datenbank. VALOR_TEXT ist als text definiert und VALOR_FLOAT definiert ist, eine doppelter. Ich schrieb code für 4 Testfälle, 2 illustrieren den Fehler (Case1 und Case2) und 2, Lösungen (Fall 3 und Case4). Der code ist unten zu finden.
Case3 ist direkt anwendbar für die Befestigung Ihres Codes. Durch abrufen der Daten AsVariant,
NullStrictConvert := false
wird die Null-Werte zulassen, um umgewandelt werden zu float -, integer-oder string-mit eine Ausnahme.Case4 stellt eine Methode zur Vermeidung von Daten-Konvertierung, solange die Quell-und die Ziel-Spalten vom gleichen Typ. Wenn Sie nicht die gleiche Art, Daten-Konvertierungs-Fehler können noch auftreten.
Stellen Sie sicher qConsulta2.fieldbyname('valor').asfloat ist nicht leer.
NULL
? AufrufAsFloat
auf einen Null-float Feld zurück0
nicht um einen Fehler.Müssen Sie prüfen, ob Ihre Abfrage tatsächlich zurückgegebenen Datensätze:
oder wenn Sie wollen,, um sicherzustellen, es ist immer ein Datensatz zurückgegeben, verwenden Sie die SQL
COALESCE
Befehl:UPDATE
Wilde Vermutung hier, da Sie nicht geben Sie Ihre Datenbank details: wenn Ihr
VALOR
Feld in derPARAMETRO
Tabelle ist eigentlich ein Varchar-Datentyp, dann könnte man eine leere Zeichenfolge anstelle derNULL
:0
, keine Fehler.TQuery
Komponente, aber es sollte einfach seinNULL
, nicht erhöhen einen AV.