![]() |
Komma eingabe
morgen
hab eine frage zum rechnen!!! wie mach ich das in delphi, wenn ich eine Kommazahl eingeben will ??? Wenn ich einen punkt mache dann kommt "bitte eine Zahl eingeben" (das ist meine Fehlermeldung, was ich geschrieben habe) und wenn ich ein "," eingebe dann kommt "Falscher Syntax in nähe von 'Friktionstest'" Friktionstest ist die Tabelle in meiner SQL abfrage. hat jemand eine idee thx |
Re: Komma eingabe
:wiejetzt:
Erklär nochmal genauer was du machst. Der zweite Teil deutet daraufhin das du eine SQL-Anweisung formulierst und diese die falsche Syntax hat. Wenn Du noch etwas Code posten würdest so wäre die Hilfe einfacher. |
Re: Komma eingabe
Delphi-Quellcode:
das ist der code wo der fehler kommt
Query.close;
Query.SQL.Clear; if ((txtscheibe.Text = '') Or (txtbelagvo.Text='') Or (txtbelagvu.Text='') Or (txtbelagho.Text='') Or (txtbelaghu.Text='') Or (txtbelagvo_end.Text='') Or (txtbelagvu_end.Text='') Or (txtbelagho_end.Text='') Or (txtbelaghu_end.Text='')) then begin Showmessage('Bitte geben Sie einen Wert ein'); frmgewichtaendern.Show; end else if isFloat(txtscheibe.Text) and isFloat(txtbelagvo.Text) and isFloat (txtbelagvu.Text) and isFloat (txtbelagho.Text) and isFloat(txtbelaghu.Text) and isFloat(txtscheibe_end.Text) and isFloat(txtbelagvo_end.Text) and isFloat(txtbelagvu_end.Text) and isFloat(txtbelagho_end.Text) and isFloat(txtbelaghu_end.Text) then begin Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Scheibe',txtscheibe.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Belag_vorne_oben',txtbelagvo.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Belag_vorne_unten',txtbelagvu.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Belag_hinten_oben',txtbelagho.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Belag_hinten_unten',txtbelaghu.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Endgewicht_Scheibe',txtscheibe_end.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Endgewicht_Belag_vorne_oben',txtbelagvo_end.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Endgewicht_Belag_vorne_unten',txtbelagvu_end.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Endgewicht_Belag_hinten_oben',txtbelagho_end.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; Query.SQL.Text:=updatesqlz('Friktionstest', 'Endgewicht_Belag_hinten_unten',txtbelaghu_end.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); Query.ExecSQL; while not Query.Eof do Query.Close; end else ShowMessage('Bitte eine Zahl eingeben!'); end;
Delphi-Quellcode:
das ist der code für den sql befehl
function updatesqlz (tabellennamez, feldnamez, aenderungz, whereanweisungz :string) :string;
//------------------------------------------------------------------------------ // UPDATE Funktion //------------------------------------------------------------------------------ var ant: string; begin ant :='UPDATE ' + #39+ tabellennamez +#39; ant :=ant + ' SET ' + feldnamez; ant :=ant + ' = ' + aenderungz ; if whereanweisungz <> '' then ant :=ant + ' WHERE ' + whereanweisungz; result:= ant; end; mein problem ist dass er eine fehlermeldung ausgibt wenn ich eine kommazahl eingeben will zb.: 3,75 da regt er sich über das komma auf und über solche zeilen
Delphi-Quellcode:
und bei einen punkt zb.: 3.75 kennt er das als text an
Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Scheibe',txtscheibe.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text);
??? |
Re: Komma eingabe
Hallo,
in SQL ist ein Komma ein TRENN-Zeichen. Also übergib doch am besten einen Float-Parameter mfg wo |
Re: Komma eingabe
was meinst du mit float parameter ??
|
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
Das Problem geht, glaube ich, mehr in richtung Datenbanken. |
Re: Komma eingabe
Hai cell,
als welcher Typ sind die einzelnen Felder denn in der Datenbank-Tabelle deklariert worden? Ansonsten ist es so: Datenbanken musst Du in der Regel einen Flieskommewert mit einem . (punkt) als Dezimaltrennzeichen übergeben.
SQL-Code:
UPDATE tabelle SET feldname = 3.44 WHERE bedingung
|
Re: Komma eingabe
Zitat:
SQL-Code:
und in deinem Source müsste stehen
UPDATE tabelle SET feldname = :myParam WHERE bedingung
Code:
mfg
myQry.ParamByName('myParam').AsFloat := StrToFloat('3,44');
wo [edit] Sorry hatte die Hochkommas vergessen[/edit] |
Re: Komma eingabe
@sharky
das sind alles float zahlen! wenn ich einen punkt eingebe dann sagt er mir dass das ein text ist, ich habs mal mit anführungszeichen probiert also so
Delphi-Quellcode:
funktioniert aber auch ned
var
ant: string; begin ant :='UPDATE ' + #39+ tabellennamez +#39; ant :=ant + ' SET ' + #39+ feldnamez +#39; ant :=ant + ' = ' + #39+ aenderungz +#39; if whereanweisungz <> '' then ant :=ant + ' WHERE ' + whereanweisungz; result:= ant; end; @woge
Delphi-Quellcode:
die zeile versteh ich ned :(
myQry.ParamByName(myParam).AsFloat := StrToFloat('3,44');
sry |
Re: Komma eingabe
Zitat:
Lies mal in der Delphi Hilfe mfg wo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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 by Thomas Breitkreuz