AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme Float in MySql Datenbank schreiben Hilfe !
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme Float in MySql Datenbank schreiben Hilfe !

Ein Thema von saschab · begonnen am 3. Mai 2005 · letzter Beitrag vom 5. Mai 2005
Antwort Antwort
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#1

Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 3. Mai 2005, 15:17
Datenbank: Mysql • Version: 4.1 • Zugriff über: ZeosLibs
Hallo zusammen,

langsam bin ich am verzweifeln ich habe einen Datenbank wo ich Werte reinsreiben will. Strings u.s.w klappt auch ohne Probs. Wenn ich aber versuche nen Float wert reinzuscreiben gibt es ne Fehlermeldung.

Query1.Parms.ParamByName('vlimit').Value := RoundTo(StrToFloat(ed_limit.text),-2); in der editbox steht z.B. 29,33 drinne. In der DB wird es als 29.33 gepeichert. Wenn ich in dem editfeld 29.33 eingebe kann er es nicht mehr zu einem Float konvertieren.

Weis echt nicht mehr weiter. Hoffe auf eure Hilfe.
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 3. Mai 2005, 15:25
Hai sschab,

warum sagst Du dem ParamByName nicht einfach das Du einen String übergeben möchtest. Die notwendigen Umwandlungen sollten dan automatisch, und richtig, gemacht werden.

  Query1.Parms.ParamByName('vlimit').AsString := ed_limit.text;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 3. Mai 2005, 18:27
@sharky:

habs gerade mal ausprobiert funz nicht leider. Hast vielleicht noch ne andere Idee?
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 3. Mai 2005, 18:49
Zitat von saschab:
in der editbox steht z.B. 29,33 drinne. In der DB wird es als 29.33 gepeichert. Wenn ich in dem editfeld 29.33 eingebe kann er es nicht mehr zu einem Float konvertieren.
Deine Konvertierung mit StrToFloat() ist völlig in Ordnung. Du musst dich irgendwann entscheiden, nach welcher Konvention du deine Zahlen eingeben willst: Dezimalpunkt oder Dezimalkomma. Einstellen kannst du deine Vorliebe systemweit oder anwendungsspezifisch, ja sogar wählbar. Die Unit SysUtils enthält dazu eine Variable DecimalSeparator. Interessieren könnte dich in dem Zusammenhang noch Application.UpdateFormatSettings.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 3. Mai 2005, 19:06
Zitat von saschab:
...habs gerade mal ausprobiert funz nicht leider. Hast vielleicht noch ne andere Idee?
Jetzt habe ich erst gelesen was Du genau geschrieben hast.
Zitat von marabu:
Du musst dich irgendwann entscheiden, nach welcher Konvention du deine Zahlen eingeben willst
Ich würde das "Problem" einfach verhindern. Lasse in dem Edit nur die Zeichen zu die gemäß der Landeseinstellungen gültig sind.

Dazu kannst Du im .OnKeyPress der Edits das machen:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8,DecimalSeparator]) then
  begin
    Key := #0;
  end;
end;
Allerdings könnten dann noch "falsche" Eingaben über die Zwichenablage erfolgen.
Ich verwende die Jedi-Komponenten. Dort gibt es ein TJvCalcEdit für die Eingabe von Zahlen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 5. Mai 2005, 19:19
Hi,
hab jetzt alle genannten Möglichkeiten probiert und es geht einfach nicht bekomme immer folgende Meldung

Zitat:

SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit,website) VALUES (2,'Sascha','Büscher',1,'Teststr 12','12345','Ofds' at line 1
Dies ist der Quellcode:

Delphi-Quellcode:
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('INSERT INTO kunden (kd_nr,vorname,nachname,anrede,strasse,plz,ort,land,l_vorname,l_nachname,l_anrede,l_strasse,l_plz,l_ort,l_land,tel1,tel2,tel3,fax,handy,email,ansprechpartner,bemerkungen,rabatt,limit,website)');
    query1.SQL.Add('VALUES');
query1.SQL.Add('(:vkd_nr,:vvorname,:vnachname,:vanrede,:vstrasse,:vplz,:vort,:vland,:vl_vorname,:vl_nachname,:vl_anrede,:vl_strasse,:vl_plz,:vl_ort,:vl_land,:vtel1,:vtel2,:vtel3,:vfax,:vhandy,:vemail,:vansprechpartner,:vbemerkungen,:vrabatt,:vlimit,:vwebsite)');
    query1.Params.ParamByName('vkd_nr').Value := StrToInt(ed_kundennummer.Text);
    query1.Params.ParamByName('vvorname').Value := ed_rvorname.Text;
    query1.Params.ParamByName('vnachname').Value := ed_rname.Text;
    query1.Params.ParamByName('vanrede').Value := ranrede;
    query1.Params.ParamByName('vstrasse').Value := ed_rstrasse.Text;
    query1.Params.ParamByName('vplz').Value := ed_rplz.Text;
    query1.Params.ParamByName('vort').Value := ed_rort.Text;
    query1.Params.ParamByName('vland').Value := rland;
    query1.Params.ParamByName('vl_vorname').Value := ed_lvorname.Text;
    query1.Params.ParamByName('vl_nachname').Value := ed_lname.Text;
    query1.Params.ParamByName('vl_anrede').Value := lanrede;
    query1.Params.ParamByName('vl_strasse').Value := ed_lstrasse.Text;
    query1.Params.ParamByName('vl_plz').Value := ed_lplz.Text;
    query1.Params.ParamByName('vl_ort').Value := ed_lort.Text;
    query1.Params.ParamByName('vl_land').Value := lland;
    query1.Params.ParamByName('vtel1').Value := ed_telefon1.Text;
    query1.Params.ParamByName('vtel2').Value := ed_telefon2.Text;
    query1.Params.ParamByName('vtel3').Value := ed_telefon3.Text;
    query1.Params.ParamByName('vfax').Value := ed_fax.Text;
    query1.Params.ParamByName('vhandy').Value := ed_mobil.Text;
    query1.Params.ParamByName('vemail').Value := ed_email.Text;
    query1.Params.ParamByName('vansprechpartner').Value := ed_ansprechpartner.Text;
    query1.Params.ParamByName('vbemerkungen').Value := memo_bemerkungen.Text;
    query1.Params.ParamByName('vrabatt').Value := StrToInt(ed_rabatt.Text);
    query1.Params.ParamByName('vlimit').Value := StrToFloat(ed_limit.Text);
    query1.Params.ParamByName('vwebsite').Value := ed_website.Text;
    query1.ExecSQL;
  except
    on E: Exception do Showmessage(E.Message);
  end;
kann es vielleicht an der Spracheinstellung von Mysql liegen benutze Mysql 4.1 unter windows.
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 5. Mai 2005, 19:41
Zitat:
right syntax to use near 'limit,website)
Der SQL-Parser sagt dir ja genau die Stelle, an der er ein Problem sieht. LIMIT ist ein reserviertes Wort und darf nicht als Spaltenname verwendet werden.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Probleme Float in MySql Datenbank schreiben Hilfe !

  Alt 5. Mai 2005, 19:59
@marabu:

Danke

genau das wars !!!!!!!!!!!!!!!
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  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 14:02 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