🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi.bazy-danych
8 messages
8 total messages Started by moxi Thu, 01 Oct 2015 14:58
AsFloat (Firebird + zeos + CodeTyphon)
#80919
Author: moxi
Date: Thu, 01 Oct 2015 14:58
26 lines
783 bytes
Witam,

trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB 
pole: WARTOSC Decimal(10,2) a w kodzie:

ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES (:Parametr);';

ZQueryX.ParamByName('Parametr').AsFloat := 
ZQueryY.FieldByName('WARTOSC_Y').AsFloat;

pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn 
w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie

ZQueryX.ParamByName('Parametr').AsFloat := 1.23;

i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast

WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);

sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno 
przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?

FB 2.5, zeos 7.2 rev 3645, CT 5.2
wszystko 64 bit

Pozdrawiam,
moxi
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80920
Author: wloochacz
Date: Thu, 01 Oct 2015 16:14
31 lines
978 bytes
W dniu 2015-10-01 o 14:58, moxi pisze:
> Witam,
>
> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
> pole: WARTOSC Decimal(10,2) a w kodzie:
>
> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES (:Parametr);';
>
> ZQueryX.ParamByName('Parametr').AsFloat :> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>
> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>
> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>
> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>
> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>
> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>
> FB 2.5, zeos 7.2 rev 3645, CT 5.2
> wszystko 64 bit
Tylko strzelam, ale...
Dlaczego nie ZQueryX.ParamByName('Parametr').Value lub
ZQueryX.ParamByName('Parametr').AsCurrency?


--
wloochacz
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80921
Author: miab
Date: Thu, 01 Oct 2015 18:25
34 lines
1104 bytes
W dniu 2015-10-01 o 14:58, moxi pisze:
> Witam,
>
> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
> pole: WARTOSC Decimal(10,2) a w kodzie:
>
> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES (:Parametr);';
>
> ZQueryX.ParamByName('Parametr').AsFloat :> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>
> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>
> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>
> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>
> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>
> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>
> FB 2.5, zeos 7.2 rev 3645, CT 5.2
> wszystko 64 bit
>

U mnie na Debian8-64, Zeos 7.2 svn 3636,  Lazarus 1.4, FB2.54 prawidłowo
zwraca np.:
Edit1.Text:=ZQuery1.FieldByName('F10_1').AsString
Może w tym CodeTyphon 5.2 coś jest położone.
Ostatnio używałem 5.4 z aktualizacjami ale tylko na Windows 32/64.

miab
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80922
Author: moxi
Date: Fri, 02 Oct 2015 12:43
40 lines
1498 bytes
W dniu 2015-10-01 o 16:14, wloochacz pisze:
> W dniu 2015-10-01 o 14:58, moxi pisze:
>> Witam,
>>
>> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
>> pole: WARTOSC Decimal(10,2) a w kodzie:
>>
>> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES
>> (:Parametr);';
>>
>> ZQueryX.ParamByName('Parametr').AsFloat :>> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>>
>> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
>> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>>
>> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>>
>> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>>
>> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>>
>> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
>> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>>
>> FB 2.5, zeos 7.2 rev 3645, CT 5.2
>> wszystko 64 bit
> Tylko strzelam, ale...
> Dlaczego nie ZQueryX.ParamByName('Parametr').Value lub
> ZQueryX.ParamByName('Parametr').AsCurrency?
>
>
słuszna uwaga, oczywiście mam ZQueryX.ParamByName('Parametr').Value ale
w ramach lekkiego nerwa zdarza mi się testować różne dziwne konstrukcje
;) sprawdziłem wszystkie możliwości i w każdej zwraca złą wartość :( a
tak w zasadzie to pomijając wydajność nie powinno mieć znaczenia, której
wersji użyje, dochodzą tylko niepotrzebne konwersje pomiędzy typami, no
chyba że jest tam coś więcej czego nie doczytałem...

--
moxi
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80923
Author: moxi
Date: Fri, 02 Oct 2015 12:57
50 lines
1807 bytes
W dniu 2015-10-01 o 18:25, miab pisze:
> W dniu 2015-10-01 o 14:58, moxi pisze:
>> Witam,
>>
>> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
>> pole: WARTOSC Decimal(10,2) a w kodzie:
>>
>> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES
>> (:Parametr);';
>>
>> ZQueryX.ParamByName('Parametr').AsFloat :>> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>>
>> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
>> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>>
>> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>>
>> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>>
>> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>>
>> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
>> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>>
>> FB 2.5, zeos 7.2 rev 3645, CT 5.2
>> wszystko 64 bit
>>
>
> U mnie na Debian8-64, Zeos 7.2 svn 3636,  Lazarus 1.4, FB2.54 prawidłowo
> zwraca np.:
> Edit1.Text:=ZQuery1.FieldByName('F10_1').AsString
> Może w tym CodeTyphon 5.2 coś jest położone.

też tak myślałem ale jakoś bardziej prawdopodobne wydawało mi się że nie
znam jakiegoś myka na linux

> Ostatnio używałem 5.4 z aktualizacjami ale tylko na Windows 32/64.

sprawdziłem 5.4 i 5.5 ale tam niestety nie działa cross do linuxa,
zupełnie nie kompiluje się toolchain dla linuxa :( wiec wróciłem do 5.2
i zaktualizowałem komponenty :)

ale chyba znalazłem winowajcę, ponieważ na tej samej bazie i
komponentach pod win działa a na linux nie zacząłem zastanawiać się nad
biblioteką klienta FB, na serwerze testowym zaktualizowałem FB do
najnowszej wersji i wszystko poszło :) w poniedziałek będę wiedział czy
na produkcyjnych też to pomogło :)

--
moxi
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80932
Author: Eugeniusz Rink
Date: Wed, 21 Oct 2015 09:26
62 lines
2248 bytes
W dniu 02.10.2015 o 12:57, moxi pisze:
> W dniu 2015-10-01 o 18:25, miab pisze:
>> W dniu 2015-10-01 o 14:58, moxi pisze:
>>> Witam,
>>>
>>> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
>>> pole: WARTOSC Decimal(10,2) a w kodzie:
>>>
>>> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES
>>> (:Parametr);';
>>>
>>> ZQueryX.ParamByName('Parametr').AsFloat :>>> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>>>
>>> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
>>> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>>>
>>> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>>>
>>> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>>>
>>> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>>>
>>> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
>>> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>>>
>>> FB 2.5, zeos 7.2 rev 3645, CT 5.2
>>> wszystko 64 bit
>>>
>>
>> U mnie na Debian8-64, Zeos 7.2 svn 3636,  Lazarus 1.4, FB2.54 prawidłowo
>> zwraca np.:
>> Edit1.Text:=ZQuery1.FieldByName('F10_1').AsString
>> Może w tym CodeTyphon 5.2 coś jest położone.
>
> też tak myślałem ale jakoś bardziej prawdopodobne wydawało mi się że nie
> znam jakiegoś myka na linux
>
>> Ostatnio używałem 5.4 z aktualizacjami ale tylko na Windows 32/64.
>
> sprawdziłem 5.4 i 5.5 ale tam niestety nie działa cross do linuxa,
> zupełnie nie kompiluje się toolchain dla linuxa :( wiec wróciłem do 5.2
> i zaktualizowałem komponenty :)
>
> ale chyba znalazłem winowajcę, ponieważ na tej samej bazie i
> komponentach pod win działa a na linux nie zacząłem zastanawiać się nad
> biblioteką klienta FB, na serwerze testowym zaktualizowałem FB do
> najnowszej wersji i wszystko poszło :) w poniedziałek będę wiedział czy
> na produkcyjnych też to pomogło :)
>
Witam...

Tak z czystej ciekawości... jaką to aplikację Kolega na Linux buduje??
Chodzi mi czy to jakiś program magazynowy, sprzedaż, księgowość itp??

Akurat też piszę w podobnym zestawieniu narzędziowym na Linux więc
jestem ciekaw... A tworzymy oprogramowanie dla lekarzy POZ AOS...

Jeżeli to nie jest tajemnicą

Pozdrawiam

Eugeniusz Rink
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80988
Author: moxi
Date: Mon, 20 Jun 2016 11:14
68 lines
2535 bytes
>>> trafilem na dziwne zachowanie zestawu z tematu, upraszczajac mam w FB
>>> pole: WARTOSC Decimal(10,2) a w kodzie:
>>>
>>> ZQueryFB.SQL.Text := 'INSERT INTO TabelaX (WARTOSC_X) VALUES
>>> (:Parametr);';
>>>
>>> ZQueryX.ParamByName('Parametr').AsFloat :>>> ZQueryY.FieldByName('WARTOSC_Y').AsFloat;
>>>
>>> pod Windows dziala dobrze a jako cross dla Linux zaczynaja sie chece tzn
>>> w bazie zawsze laduje mi 0.00, sprawdzilem przypisanie
>>>
>>> ZQueryX.ParamByName('Parametr').AsFloat := 1.23;
>>>
>>> i jest ok, prawidlowa wartosc pojawia sie w bazie, natomiast
>>>
>>> WriteLn(ZQueryY.FieldByName('WARTOSC_Y').AsString);
>>>
>>> sa dziwne wartosci, np dla 634,00 podaje 1.35855497866354E-12 a powinno
>>> przeciez byc 6.34E+2, co moze byc tego powodem? jak to obejsc?
>>>
>>> FB 2.5, zeos 7.2 rev 3645, CT 5.2
>>> wszystko 64 bit
>>>
>>
>> U mnie na Debian8-64, Zeos 7.2 svn 3636,  Lazarus 1.4, FB2.54 prawidłowo
>> zwraca np.:
>> Edit1.Text:=ZQuery1.FieldByName('F10_1').AsString
>> Może w tym CodeTyphon 5.2 coś jest położone.
>
> też tak myślałem ale jakoś bardziej prawdopodobne wydawało mi się że nie
> znam jakiegoś myka na linux
>
>> Ostatnio używałem 5.4 z aktualizacjami ale tylko na Windows 32/64.
>
> sprawdziłem 5.4 i 5.5 ale tam niestety nie działa cross do linuxa,
> zupełnie nie kompiluje się toolchain dla linuxa :( wiec wróciłem do 5.2
> i zaktualizowałem komponenty :)
>
> ale chyba znalazłem winowajcę, ponieważ na tej samej bazie i
> komponentach pod win działa a na linux nie zacząłem zastanawiać się nad
> biblioteką klienta FB, na serwerze testowym zaktualizowałem FB do
> najnowszej wersji i wszystko poszło :) w poniedziałek będę wiedział czy
> na produkcyjnych też to pomogło :)
>

temat trochę odpuściłem bo pojawiły się pilniejsze rzeczy ale teraz
udało mi się go obczaić więc na wszelki wypadek opiszę jak by ktoś
kiedyś potrzebował :)

Zeosy są ok, klient FB też, okazuje się że tak jak miab sugerował CT ma
coś położone, a dokładnie corss do linuxa, dla identycznego kodu wygląda
to następująco:

Typhon64 -> win64 -> ok
Typhon64 -> linux64 -> błędy
Typhon32 -> win32 -> ok
Typhon32 -> linux32 -> ok
Typhon32 -> linux64 -> ok

najprostszym rozwiązaniem mojego problemu jest więc cross kompilacja z
Typhon32 do linuxa 64 bit :)

co ciekawe obecnie mamy już wersje 5.7 w changes log jest "FIX
FreePascal Cross-Build Element for target x86_64-linux" ale mi się nie
udało tego odpalić więc nadal siedzę na 5.2

--
moxi
Re: AsFloat (Firebird + zeos + CodeTyphon)
#80989
Author: moxi
Date: Mon, 20 Jun 2016 11:26
31 lines
1181 bytes
> Tak z czystej ciekawości... jaką to aplikację Kolega na Linux buduje??
> Chodzi mi czy to jakiś program magazynowy, sprzedaż, księgowość itp??
>
> Akurat też piszę w podobnym zestawieniu narzędziowym na Linux więc
> jestem ciekaw... A tworzymy oprogramowanie dla lekarzy POZ AOS...
>
> Jeżeli to nie jest tajemnicą
>
> Pozdrawiam
>
> Eugeniusz Rink

Witam,

najmocniej Kolegę przepraszam, gdzieś w natłoku pracy przeoczyłem ten
post :(

jest to pewnego rodzaju importer/konwerter, codziennie w nocy dostaję
kilkaset dbf-ów ze starego systemu księgowego, muszę je obrobić i
wygenerować trochę raportów, ponieważ lądują mi na serwerze opartym o
linuxa, na którym też mam FB, stwierdziłem że nie ma sensu przepychać
tego przez jakąś windę tylko napiszę sobie aplikację konsolową odpalaną
przez cron-a, która zrobi wszystko lokalnie, działa to bardzo
sympatycznie, pierwsze liczy sumy kontrolne dla dbf-ów (bo większość się
nie zmienia) i podmienia w FB tylko te z nowymi danymi, do mapowania pól
dbf -> FB mam napisaną aplikację już pod win więc cześć linuksowa jest
praktycznie bezobsługowa :)

Pozdrawiam

--
moxi
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads