Author: roger.wallin@abilita.fi (rogerw)


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.



  1. 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,

    Author: sochaz (zdenek.socha@fullsys.cz)
  2. 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)
  3. 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)
  4. ... 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)
  5. 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)