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.