I3-I4
Author: roger.wallin@abilita.fi (rogerw)
Hi,
I'm migrating an application from mapping1 to mapping2 of MSS.
Both "Numeric I3" and "Numeric I4" seem to map to integer, although Uniface accepts "larger" integer numbers in I4 (perhaps 3 or 4 bytes).
If you have used "Numeric C5" in mapping1, is there any loss by always using "Numeric I4 LEN(0-5)", although "Numeric I3 LEN(0-5)" would be enough?
Or in other words, what's the practical difference between I3 and I4?
Regards RogerW.
5 Comments
Local Administrator
Hi RogerW,
we don't actually use packing codes like I3 or I4... but according to the ulibrary (Uniface 9.3.02), section "Packing Codes for Numeric Data", I3 is 3-byte integer and I4 is 4-byte integer. If you look at "Integer Packing Code (I)", you can read:
I3 has range of possible values of -2 23 through (2 23 )-1
I4 has range of possible values of -2 31 through (2 31 )-1.
But be aware, that it might be a bit of DBMS dependant, not sure how it works wish MSS.
Hope this helps,
Zdenek
Author: sochaz (zdenek.socha@fullsys.cz)
Local Administrator
the interface entry is one thing... but it is important what the mapping in the database connector does.
check the information there.
Success, Uli
Author: ulrich-merkel (ulrichmerkel@web.de)
Local Administrator
Hi,
i1 maps to tinyint.
i2 maps to smallint
i3 and i4 maps to int.
So why is there an i3 ?
Regards RogerW.
Author: rogerw (roger.wallin@abilita.fi)
Local Administrator
... because other database connectors may have (or had, we run since 1985) different mappings for the both.
Success, Uli
Author: ulrich-merkel (ulrichmerkel@web.de)
Local Administrator
Hi,
yes that''s also what I thought. But looking at the mapping schemas of other databases, even the Uniface packing codes differ a lot. It's of course/probably not possible to use a Uniface packing code schema that would be appropriate for all databases, ie. Oracle seems to have i1-i8 (all mapping to long??) as MSS has i1-i4 (i3 and i4 mapping to int).
But this question starts to get an academic touch......
I think I will try to use i4 for all columns which have been mapped to "int" in my previous mapping1.
Regards RogerW.
Author: rogerw (roger.wallin@abilita.fi)