📄 interval.c
字号:
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalToText
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalToText(OCI_Interval *itv, int leading_prec,
int fraction_prec, int size, mtext *str)
{
boolean res = TRUE;
void *ostr = NULL;
int osize = size * sizeof(mtext);
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_STRING, str, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
/* init output buffer in case of OCI failure */
str[0] = 0;
#if OCI_VERSION_COMPILE >= OCI_9
ostr = OCI_GetInputMetaString(str, &osize);
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalToText((dvoid *) OCILib.env, itv->err,
(OCIInterval *) itv->handle,
(ub1) leading_prec, (ub1) fraction_prec,
(OraText *) ostr, (size_t) osize,
(size_t *) &osize)
)
OCI_GetOutputMetaString(ostr, str, &osize);
OCI_ReleaseMetaString(ostr);
/* set null string terminator */
str[osize/sizeof(mtext)] = 0;
#else
OCI_NOT_USED(str);
OCI_NOT_USED(ostr);
OCI_NOT_USED(size);
OCI_NOT_USED(osize);
OCI_NOT_USED(leading_prec);
OCI_NOT_USED(fraction_prec);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalFromTimeZone
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalFromTimeZone(OCI_Interval *itv, const mtext * str)
{
boolean res = TRUE;
void *ostr = NULL;
int osize = -1;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_STRING, str, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
#if OCI_VERSION_COMPILE >= OCI_9
ostr = OCI_GetInputMetaString(str, &osize);
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalFromTZ((dvoid *) OCILib.env, itv->err, (OraText *) ostr,
(size_t) osize, itv->handle)
)
OCI_ReleaseMetaString(ostr);
#else
OCI_NOT_USED(str);
OCI_NOT_USED(ostr);
OCI_NOT_USED(osize);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalGetDaySecond
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalGetDaySecond(OCI_Interval *itv, int *day, int *hour,
int *min, int *sec, int *fsec)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, hour, FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, min , FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, sec, FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, fsec, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
*day = 0;
*hour = 0;
*min = 0;
*sec = 0;
*fsec = 0;
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalGetDaySecond((dvoid *) OCILib.env, itv->err,
(sb4 *) day, (sb4 *) hour, (sb4 *) min,
(sb4 *) sec, (sb4 *) fsec, itv->handle)
)
#else
OCI_NOT_USED(day);
OCI_NOT_USED(hour);
OCI_NOT_USED(min);
OCI_NOT_USED(sec);
OCI_NOT_USED(fsec);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalGetYearMonth
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalGetYearMonth(OCI_Interval *itv, int *year, int *month)
{
boolean res = FALSE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, year, FALSE);
OCI_CHECK_PTR(OCI_IPC_INT, month, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
*year = 0;
*month = 0;
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalGetYearMonth((dvoid *) OCILib.env, itv->err,
(sb4 *) year, (sb4 *) month, itv->handle)
)
#else
OCI_NOT_USED(year);
OCI_NOT_USED(month);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalSetDaySecond
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalSetDaySecond(OCI_Interval *itv, int day,int hour,
int min, int sec, int fsec)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalSetDaySecond((dvoid *) OCILib.env, itv->err,
(sb4) day, (sb4) hour, (sb4) min,
(sb4) sec, (sb4) fsec, itv->handle)
)
#else
OCI_NOT_USED(day);
OCI_NOT_USED(hour);
OCI_NOT_USED(min);
OCI_NOT_USED(sec);
OCI_NOT_USED(fsec);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalSetYearMonth
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalSetYearMonth(OCI_Interval *itv, int year, int month)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalSetYearMonth((dvoid *) OCILib.env, itv->err,
(sb4) year, (sb4) month, itv->handle)
)
#else
OCI_NOT_USED(year);
OCI_NOT_USED(month);
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalAdd
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalAdd(OCI_Interval *itv, OCI_Interval *itv2)
{
boolean res = FALSE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv2, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalAdd((dvoid *) OCILib.env, itv->err,
itv->handle, itv2->handle, itv->handle)
)
#endif
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_IntervalSubtract
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_IntervalSubtract(OCI_Interval *itv, OCI_Interval *itv2)
{
boolean res = FALSE;
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv, FALSE);
OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv2, FALSE);
OCI_CHECK_INTERVAL_ENABLED(itv->con, FALSE);
#if OCI_VERSION_COMPILE >= OCI_9
OCI_CALL4
(
res, itv->err, itv->con,
OCIIntervalSubtract((dvoid *) OCILib.env, itv->err,
itv->handle, itv2->handle, itv->handle)
)
#endif
OCI_RESULT(res);
return res;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -