Einzelnen Beitrag anzeigen

Michael80

Registriert seit: 20. Nov 2003
Ort: Treuchtlingen
72 Beiträge
 
Delphi 10.3 Rio
 
#1

"" kein gültiger Gleitkommawert

  Alt 21. Jun 2004, 10:14
Hallo, folgender Code produziert mir den Fehler "" kein Gültiger Gleitkommawert, sobald
der feldwert den er einlesen soll 0 ist. Auserdem übernimmt er nur die 1. stelle nach dem komma.
sprich er macht aus 199,24 --> 199,2. das Feld ist in meiner DB mit numeric(12,2) deklariert.

An was kann das liegen?!?


Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
var
  masterSL : TStringList;
  detailSL : TStringList;
  ndx : Integer; // Laufvariable für Master
  begin
  masterSL := TStringList.Create; // Master StringList
  detailSL := TStringList.Create; // Detail StringList
  try
    detailSL.Delimiter := ';'; // Trennzeichen der Einträge pro Zeile
    detailSL.QuoteChar := '|'; // Quoting Zeichen.
    masterSL.LoadFromFile(''+edit1.text+'');
    progressbar1.max := mastersl.count;
    for ndx := 0 to Pred (mastersl.Count) do
    begin
      progressbar1.Position := ndx;
      detailsl.Clear;
      detailsl.DelimitedText := '|' + StringReplace(mastersl.Strings[ndx],';','|;|',[rfReplaceAll]);
      //detailsl.savetofile('c:\test.txt');
      while detailsl.Count < 3 do detailsl.Add('');
      with DataModule2.IBQuery1 do
      begin
        Close;
        SQL.Text := 'INSERT INTO '+edit2.text+'(Artikelnummer, Bezeichnung, Verkaufspreis) VALUES (:wert1,:wert2,:wert3)';
        ParamCheck := True;
        ParamByName('wert1').AsString := detailsl.Strings[0];
        ParamByName('wert2').AsString := detailsl.Strings[1];
        ParamByName('wert3').AsBCD := strtocurr(detailsl.Strings[2]); <-------- das müsste die zeile sein
        ExecSQL;
        end; datamodule2.IBTransaction1.Commit;
        //DataModule2.IBTransaction1.Commit;
            //If RecsInTransact > 500 then
            //begin
            //IBTransaction1.Commit;
            //RecsInTransact := 0;
            //end;
            //inc(RecsInTransact);

        end;

  finally
    FreeAndNil (mastersl);
    FreeAndNil (detailsl);
    progressbar1.Position := 0;
    if MessageDLg('Einlesen abgeschlossen!',
              mtConfirmation,[mbOK],0)=mrOK then

  end;
end;
  Mit Zitat antworten Zitat