AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"" kein gültiger Gleitkommawert

Ein Thema von Michael80 · begonnen am 21. Jun 2004 · letzter Beitrag vom 21. Jun 2004
 
Michael80

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

Re: "" kein gültiger Gleitkommawert

  Alt 21. Jun 2004, 18:47
So, dieser code würde funktionieren, wenn er nicht immernoch eine Kommastelle abschneiden würde. Seltsam ist (dank an r_kerber) wenn ich
statt :wert3 gleich 1.28 eintrag, schreibt er mir auch 1,28 in die DB.
lass ichs über :wert3 laufen macht er wieder 1,2

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');
        DataModule2.IBQuery1.SQL.Text := 'INSERT INTO '+edit2.text+'(Artikelnummer, Bezeichnung, Verkaufspreis) VALUES (:wert1,:wert2,:wert3)';
        DataModule2.IBQuery1.ParamCheck := True;
        while detailsl.Count < 3 do detailsl.Add('');
      with DataModule2.IBQuery1 do
      begin
        ParamByName('wert1').AsString := detailsl.Strings[0];
        ParamByName('wert2').AsString := detailsl.Strings[1];
        ParamByName('wert3').AsString := detailsl.Strings[2];
        ExecSQL;
        end; datamodule2.IBTransaction1.Commit;
        end;

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

  end;
end;
Zitat von Robert_G:
Das war also gar nicht so falsch
Source:
ParamByName('wert3').AsBCD := strtocurr(detailsl.Strings[2]);
(sourcetabelle ist wieder mit Kommas)

macht er wieder 1,2

wenn ich schreib

ParamByName('wert3').AsBCD := strtocurr('1,28'); trägt er es wieder richtig ein

wobei er dann wieder meckert mit "" ist kein gleitkommwert, sobald als Wert die 0 vorkommt.


also tendier ich zum oberen code!
  Mit Zitat antworten Zitat
 


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 03:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz