The mi_fp_argscale() function
The mi_fp_argscale() accessor function obtains the scale of an argument of a user-defined routine from its associated MI_FPARAM structure.
Syntax
mi_integer mi_fp_argscale(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-scale array for the argument whose scale you want.
Valid in client LIBMI application? | Valid in user-defined routine? |
---|---|
Yes | Yes |
Usage
The mi_fp_argscale() function obtains the scale of the routine argument at position arg_pos from the MI_FPARAM structure that fparam_ptr references. The scale is an attribute of the data type. The meaning of the scale depends on the associated data type, as the following table shows.
- Data type
- Meaning of scale
- DECIMAL (fixed-point), MONEY
- The number of digits to the right of the decimal point
- DECIMAL (floating-point)
- The value 255
- DATETIME, INTERVAL
- The encoded integer value for the end qualifier of the data type; end_qual in
the qualifier:
start_qual TO end_qual
If you call mi_fp_argscale() on
some other data type, the function returns zero (0
).
The MI_FPARAM structure
stores information about the scale of routine arguments in the zero-based
argument-scale array. To obtain information about the nth argument,
use an arg_pos value of n-1
.
mi_integer my_func(..., fparam1)
...
MI_FPARAM *fparam1;
{
mi_integer arg_scale;
...
arg_scale = mi_fp_argscale(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 scale, in number of digits, of the fixed-point or floating-point argument at position arg_pos.
- MI_ERROR
- The function was not successful.