jak formatować zapytanie SQL ???

0

Witam.
potrzebuje sforamatowac zapytanie SQL w Delphim aby wysyłał mi do tabel w interbase wartości zmiennoprzecinkowe.
Kiedy zrobie zwykle zapytanie, Delphi i baza wszystlko ladnie łyka

DM_Dane.SQL_dj.Close;
DM_Dane.SQL_dj.CommandText := 'UPDATE KARTA_PRACY SET PRODUKCJA_WYDAJNOSC="2.35';
DM_Dane.SQL_dj.ExecSQL(True);

w tabeli pojawia mi się 2,35

jedna dane chce ładować ze zmiennych np:
wydajność: Extended czy jakis inny typ zmienno...
i tu sie pojawia mały problem

DM_Dane.SQL_dj.Close;
DM_Dane.SQL_dj.CommandText := Format('UPDATE KARTA_PRACY SET PRODUKCJA_WYDAJNOSC="%n"', [wydajnosc]);
DM_Dane.SQL_dj.ExecSQL(True);

w chwili kiedy formatuje, delphi wywala mi przecinki a wszystkie wartosci zapisuje miw ciagu tzn:
wartosc 2,35 w bazie zapisana jest jako 235 :)

walczylem z formatowaniem na wszelkie sposoby, i do zmiennych, editow i w 2 strone- delikatnie mowiac wymiekam
czekam na jakies info dzieki i pozdrawiam

0

formatfloat

0

ze taka funkcja istnieje to ja tez wiem :) ale gdzie co i jak
takie cos mi nie idzie np:

x:=23.32;
DM_Dane.SQLLogin.Close;
DM_Dane.SQLLogin.CommandText:= 'UPDATE WYNAGRODZENIE SET WYNAGRODZENIE_FLD='+FormatFloat('0,0', x);
DM_Dane.SQLLogin.ExecSQL;

wstawil mi samo 23
jak wpisze +FormatFloat('0.0', x);
z kropka to sie wywala,
jak zrobie wczesniej FormatFloat poza zapytaniem to dalej wywala mi przecinki a wartosci przed i po laczy w calosc

</b>
0

w ogóle jakiego typu masz te pole gdzie chcesz przecinki wstawiać?

0

w <ort>Delphim</ort> zmienne extended w bazie numeric[16.2]

chce po prostu wstawic z <ort>delphi-ego</ort> wartosc zmiennoprzecinkowa do tabeli :)

zwykly sformatowany insert w ktorym jest zmienna('x' z wartoscia np:2.4) i ten insert wstawia mi do bazy 2,4 a nie 24

0

Witam!

Miałam podobny problem, oto rozwiązanie:
tworzysz zmienną

tfs:TFORMATSETTINGS;

następnie w kodzie przypisujesz jej wartość .

tfs.DecimalSeparator :='.';
wydajnosc:=(zmienna_x, tfs);

następnie przy zapytaniu wpisujesz coś takiego

DM_Dane.SQL_dj.CommandText := Format('UPDATE KARTA_PRACY SET PRODUKCJA_WYDAJNOSC="%n"', [wydajnosc, tfs]);

Mam nadzieje że to pomoże.
:-)

lub

DM_Dane.SQL_dj.CommandText := Format('UPDATE KARTA_PRACY SET PRODUKCJA_WYDAJNOSC="%n"', floatToStr(wydajnosc, tfs));
0

dzieki wielkie :) wszystko gra

0

a nie prościej korzystać z parametrów??

0

wystarczy wklepac

DecimalSeparator:='.';

i zapytanie SQL wszystko łyka

1 użytkowników online, w tym zalogowanych: 0, gości: 1