[MSEide-MSEgui-talk] Field Mapping

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[MSEide-MSEgui-talk] Field Mapping

mohamed hamza
Hi All,

     
Firebird field NUMERIC(8,2) is mapped automatically as integer in MSEGUI?   What is the correct mapping 

I am using FB3 connection.

Help will be appreciate

Med.



_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Reply | Threaded
Open this post in threaded view
|

Re: [MSEide-MSEgui-talk] Field Mapping

fredvs
Hello Med.

I would be glad to help you but it was long time ago when I worked with FB3
and I cannot find time to re-jump into that.

I hope somebody else will help you.

Fre;D



--
Sent from: http://mseide-msegui-talk.13964.n8.nabble.com/


_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Reply | Threaded
Open this post in threaded view
|

Re: [MSEide-MSEgui-talk] Field Mapping

Sieghard
In reply to this post by mohamed hamza
Hello mohamed,

you wrote on Tue, 5 Nov 2019 18:54:38 +0000:

> Firebird field NUMERIC(8,2) is mapped automatically as integer in
> MSEGUI?   What is the correct mapping

8.2 looks somewhat like a currency designation, a 10 digit real value with
2 decimal places. Scaled by 100 it fits comfortably into a 32 bit integer
value without any loss of precision, as a 32 bit "single" would suffer from.
Maybe the fpc "currency" type might do? This is an integer type (64 bit),
that's internally mapped to represent a number scaled by 1/10000, which
amounts to 4 decimal places and around 15 integer digits, i.e. 19 valid
digits altogether. A bit of overkill, but this type is "natively" supported
by fpc, when you would have to create a full set of operators yourself if
you wanted to use a specifically taylored type of your own.

> I am using FB3 connection.

Isn't such a declaration usually a parametrized type? I.e, you could just
as well declare a field type being NUMERIC(12.3) oder NUMERIC(5.1), or any
other fixed point size? Fixed point means a constant-power-of-10 scaling as
specified by the number of decimal places. This can easily be represented
by an integer of sufficient size, requiring only a simple transformation
for retrieval, storing and multiplication type operations, as well as for
external representation (displaying or printing).

I hope this can be of some help.

--
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------




_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Reply | Threaded
Open this post in threaded view
|

Re: [MSEide-MSEgui-talk] Field Mapping

mohamed hamza
Hi Sieghard,

      Many  thanks for your answer .  In fact , the fields decimal(x,y) or numeric (x,y) must have a  x>8  . After the changes field.type is ftbcd  and it's  that what I expected .
     You know that  using TMSEIBCONNECTION instead tfb3connection  resolves the problem also,  but is it safe to use it  with Firebird 3 server?

Med.



De : Sieghard <[hidden email]>
Envoyé : vendredi 8 novembre 2019 22:18
À : [hidden email] <[hidden email]>
Objet : Re: [MSEide-MSEgui-talk] Field Mapping
 
Hello mohamed,

you wrote on Tue, 5 Nov 2019 18:54:38 +0000:

> Firebird field NUMERIC(8,2) is mapped automatically as integer in
> MSEGUI?   What is the correct mapping

8.2 looks somewhat like a currency designation, a 10 digit real value with
2 decimal places. Scaled by 100 it fits comfortably into a 32 bit integer
value without any loss of precision, as a 32 bit "single" would suffer from.
Maybe the fpc "currency" type might do? This is an integer type (64 bit),
that's internally mapped to represent a number scaled by 1/10000, which
amounts to 4 decimal places and around 15 integer digits, i.e. 19 valid
digits altogether. A bit of overkill, but this type is "natively" supported
by fpc, when you would have to create a full set of operators yourself if
you wanted to use a specifically taylored type of your own.

> I am using FB3 connection.

Isn't such a declaration usually a parametrized type? I.e, you could just
as well declare a field type being NUMERIC(12.3) oder NUMERIC(5.1), or any
other fixed point size? Fixed point means a constant-power-of-10 scaling as
specified by the number of decimal places. This can easily be represented
by an integer of sufficient size, requiring only a simple transformation
for retrieval, storing and multiplication type operations, as well as for
external representation (displaying or printing).

I hope this can be of some help.

--
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------




_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk



_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Reply | Threaded
Open this post in threaded view
|

Re: [MSEide-MSEgui-talk] Field Mapping

Sieghard
Hello mohamed,

you wrote on Sat, 9 Nov 2019 15:51:05 +0000:

>       Many  thanks for your answer .  In fact , the fields decimal(x,y)
> or numeric (x,y) must have a  x>8  . After the changes field.type is
> ftbcd  and it's  that what I expected . You know that  using

BCD (Binary Coded Decimal) is a rather old and inefficient representation,
but it's still used quite often for commercial software and probably
databases in this environment. As that's an integer-like representation
also, it suffers no precision loss within its validity range as would any
floating point representation. So for money people, floating point is a
no-go in every respect. 64 bit integers should suffice for some time to
come anyway.

> TMSEIBCONNECTION instead tfb3connection  resolves the problem also,  but
> is it safe to use it  with Firebird 3 server?

No, I don't (didn't) know that, but as I'm not deeply involved with
databases, I had no need for such things yet. But it is good to know
anyway, so many thanks for your information!

--
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------




_______________________________________________
mseide-msegui-talk mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk