🚀 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 12:58
AsFloat (Firebird + zeos + CodeTyphon)
#82593
Author: moxi
Date: Thu, 01 Oct 2015 12:58
27 lines
1792 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)
#82594
Author: wloochacz
Date: Thu, 01 Oct 2015 14:14
32 lines
2125 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)
#82602
Author: miab
Date: Thu, 01 Oct 2015 16:25
34 lines
2118 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)
#82598
Author: moxi
Date: Fri, 02 Oct 2015 10:43
41 lines
2798 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)
#82596
Author: moxi
Date: Fri, 02 Oct 2015 10:57
51 lines
3019 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)
#82599
Author: Eugeniusz Rink
Date: Wed, 21 Oct 2015 07:26
63 lines
3561 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)
#82595
Author: moxi
Date: Mon, 20 Jun 2016 09:14
69 lines
3822 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)
#82606
Author: moxi
Date: Mon, 20 Jun 2016 09:26
32 lines
2316 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