コード例 #1
0
ファイル: ocidatetime.c プロジェクト: Beerlover88/ruby-oci8
VALUE oci8_make_ociinterval_ym(OCIInterval *s)
{
    sb4 year;
    sb4 month;

    chkerr(OCIIntervalGetYearMonth(oci8_envhp, oci8_errhp, &year, &month, s));
    return rb_ary_new3(2, INT2FIX(year), INT2FIX(month));
}
コード例 #2
0
/*
boolean OCI_API OCI_IntervalGetYearMonth(OCI_Interval *itv, int *year, int *month)
{
    return OCI_IntervalGetYearMonth2(&OCILib, itv, year, month);
}
*/
boolean OCI_API OCI_IntervalGetYearMonth2(OCI_Library *pOCILib, OCI_Interval *itv, int *year, int *month, ExceptionSink* xsink)
{
    boolean res = FALSE;

    OCI_CHECK_PTR(pOCILib, OCI_IPC_INTERVAL, itv, FALSE);
    OCI_CHECK_PTR(pOCILib, OCI_IPC_INT, year,  FALSE);
    OCI_CHECK_PTR(pOCILib, OCI_IPC_INT, month, FALSE);

    OCI_CHECK_INTERVAL_ENABLED(pOCILib, itv->con, FALSE, xsink);

    *year  = 0;
    *month = 0;

#if OCI_VERSION_COMPILE >= OCI_9_0

    OCI_CALL4Q
    (
        pOCILib, res, itv->err, itv->con,

        OCIIntervalGetYearMonth((dvoid *) pOCILib->env, itv->err,
                                (sb4 *) year, (sb4 *) month, itv->handle),

	xsink
    )

#else

    OCI_NOT_USED(year);
    OCI_NOT_USED(month);

#endif

    OCI_RESULT(pOCILib, res);

    return res;
}