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

  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,
    Zdenek


    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)