AGB  ·  Datenschutz  ·  Impressum  







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

Komma eingabe

Ein Thema von cell · begonnen am 18. Jul 2005 · letzter Beitrag vom 18. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#1

Komma eingabe

  Alt 18. Jul 2005, 07:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Komma eingabe

  Alt 18. Jul 2005, 07:13


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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#3

Re: Komma eingabe

  Alt 18. Jul 2005, 07:19
Delphi-Quellcode:
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;
das ist der code wo der fehler kommt
Delphi-Quellcode:
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;
das ist der code für den sql befehl
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
Query.SQL.Text:=updatesqlz('Friktionstest', 'Anfangsgewicht_Scheibe',txtscheibe.Text,'Testnummer = ' +frmtestauswahl.cbotestnummer.Text); und bei einen punkt zb.: 3.75 kennt er das als text an
???
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Komma eingabe

  Alt 18. Jul 2005, 07:29
Hallo,

in SQL ist ein Komma ein TRENN-Zeichen. Also übergib doch am besten einen Float-Parameter

mfg
wo
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#5

Re: Komma eingabe

  Alt 18. Jul 2005, 07:31
was meinst du mit float parameter ??
  Mit Zitat antworten Zitat
18. Jul 2005, 07:43
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
Das Problem geht, glaube ich, mehr in richtung Datenbanken.
Benutzerbild von Sharky
Sharky

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

Re: Komma eingabe

  Alt 18. Jul 2005, 07:45
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.

UPDATE tabelle SET feldname = 3.44 WHERE bedingung
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Komma eingabe

  Alt 18. Jul 2005, 07:59
Zitat von Sharky:
UPDATE tabelle SET feldname = 3.44 WHERE bedingung
das SQL-Statement von Sharky würde parrametrisiert so aussehen

UPDATE tabelle SET feldname = :myParam WHERE bedingung und in deinem Source müsste stehen

Code:
myQry.ParamByName('myParam').AsFloat := StrToFloat('3,44');
mfg
wo

[edit] Sorry hatte die Hochkommas vergessen[/edit]
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#9

Re: Komma eingabe

  Alt 18. Jul 2005, 08:05
@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:
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;
funktioniert aber auch ned

@woge
myQry.ParamByName(myParam).AsFloat := StrToFloat('3,44'); die zeile versteh ich ned
sry
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Komma eingabe

  Alt 18. Jul 2005, 08:19
Zitat von cell:
@woge
myQry.ParamByName('myParam').AsFloat := StrToFloat('3,44'); die zeile versteh ich ned
sry
Das ist die Methode der Übergabe eines SQL-Parameters durch ein TQuery-Object.
Lies mal in der Delphi Hilfe

mfg
wo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:24 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