示例#1
0
OCINumber *oci8_set_integer(OCINumber *result, VALUE self, OCIError *errhp)
{
    OCINumber work;

    set_oci_number_from_num(&work, self, 1, errhp);
    chkerr(OCINumberTrunc(errhp, &work, 0, result));
    return result;
}
示例#2
0
/*
 *  call-seq:
 *     onum.to_i       -> integer
 *
 *  Returns <i>onum</i> truncated to an <code>Integer</code>.
 */
static VALUE onum_to_i(VALUE self)
{
    OCIError *errhp = oci8_errhp;
    OCINumber num;

    chkerr(OCINumberTrunc(errhp, _NUMBER(self), 0, &num));
    return oci8_make_integer(&num, errhp);
}
示例#3
0
static void bind_integer_set(oci8_bind_t *obind, void *data, void **null_structp, VALUE val)
{
    OCIError *errhp = oci8_errhp;
    OCINumber num;

    set_oci_number_from_num(&num, val, 1, errhp);
    oci_lc(OCINumberTrunc(errhp, &num, 0, (OCINumber*)data));
}
示例#4
0
/*
 *  call-seq:
 *     onum.truncate     -> integer
 *     onum.truncate(decplace) -> oranumber
 *
 *  Truncates <i>onum</i> to the <code>Integer</code> when no argument.
 *  Truncates <i>onum</i> to a specified decimal place <i>decplace</i> when one argument.
 */
static VALUE onum_trunc(int argc, VALUE *argv, VALUE self)
{
    OCIError *errhp = oci8_errhp;
    VALUE decplace;
    OCINumber r;

    rb_scan_args(argc, argv, "01", &decplace /* 0 */);
    chkerr(OCINumberTrunc(errhp, _NUMBER(self), NIL_P(decplace) ? 0 : NUM2INT(decplace), &r));
    return oci8_make_ocinumber(&r, errhp);
}