The mi_fp_argprec() function

The mi_fp_argprec() accessor function obtains the precision of an argument of a user-defined routine from its associated MI_FPARAM structure.

Syntax

mi_integer mi_fp_argprec(fparam_ptr, arg_pos)
   MI_FPARAM *fparam_ptr;
   mi_integer arg_pos;
fparam_ptr
A pointer to the associated MI_FPARAM structure.
arg_pos
The index position into the argument-precision array for the argument whose precision you want.
Valid in client LIBMI application? Valid in user-defined routine?
Yes Yes

Usage

The mi_fp_argprec() function obtains the precision of the routine argument at position arg_pos from the MI_FPARAM structure that fparam_ptr references. The precision is an attribute of the data type that represents the total number of digits the routine argument can hold, as follows.
DECIMAL, MONEY
Number of significant digits in the fixed-point or floating-point (DECIMAL) column
DATETIME, INTERVAL
Number of digits that are stored in the date and/or time column with the specified qualifier
Character, Varying-character
Maximum number of characters in the column

If you call mi_fp_argprec() on some other data type, the function returns zero.

The MI_FPARAM structure stores information about the precision of routine arguments in the zero-based argument-precision array. To obtain information about the nth argument, use an arg_pos value of n-1. For example, the following call to mi_fp_argpec() obtains the precision for the third argument of the my_func() UDR, with which fparam1 is associated:
mi_integer my_func(..., fparam1)
   ...
   MI_FPARAM *fparam1;
{
   mi_integer arg_prec;
   ...
   arg_prec = mi_fp_argprec(fparam1, 2);

For more information about argument information in an MI_FPARAM structure or about the precision of a fixed-point data type, see the Informix® DataBlade® API Programmer's Guide.

Return values

>=0
The precision, in number of digits, of the fixed-point or floating-point argument at position arg_pos.
MI_ERROR
The function was not successful.