The mi_fp_setretprec() function
The mi_fp_setretprec() accessor function sets the precision of a return value of a user-defined function in its associated MI_FPARAM structure.
Syntax
void mi_fp_setretprec(fparam_ptr, ret_pos, ret_prec)
MI_FPARAM *fparam_ptr;
mi_integer ret_pos;
mi_integer ret_prec;
- fparam_ptr
- A pointer to the associated MI_FPARAM structure.
- ret_pos
- The index position into the return-precision array for the return
value whose precision you want to set. For C user-defined functions,
the only valid value is
0
. - ret_prec
- The precision, in number of digits, to set for the ret_pos+1 return value.
Valid in client LIBMI application? | Valid in user-defined routine? |
---|---|
Yes | Yes |
Usage
The mi_fp_setretprec() function sets the precision of the function return value at position ret_pos in 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 return value 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
The MI_FPARAM structure stores information about the precision of function return values in the zero-based return-precision array.
For more information about return-value information in an MI_FPARAM structure or about the precision of a fixed-point data type, see the Informix® DataBlade® API Programmer's Guide.
To
set information for the nth return value, use a ret_pos value
of n-1
.
For example, the following
call to mi_fp_setretprec() sets the precision of
10 for the first return value of the my_func() UDR,
with which fparam1 is associated:
mi_integer my_func(..., fparam1)
...
MI_FPARAM *fparam1;
{
...
mi_fp_setretprec(fparam1, 0, 10);
Important: C
user-defined functions always have only one return value.
Return values
None.