📄 dirpath.c
字号:
&size, OCI_ATTR_COL_COUNT, dp->con->err);
size = sizeof(dp->err_row);
OCIAttrGet(dp->arr, OCI_HTYPE_DIRPATH_COLUMN_ARRAY, &dp->err_row,
&size, OCI_ATTR_ROW_COUNT, dp->con->err);
}
}
else
{
ret = OCI_ERROR;
}
OCI_RESULT(ret == OCI_SUCCESS);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathLoad
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathLoad(OCI_DirPath *dp)
{
unsigned int res = OCI_DPR_COMPLETE;
sword ret = OCI_SUCCESS;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_CONVERTED, FALSE);
dp->nb_prcsd = 0;
dp->err_col = -1;
ret = OCIDirPathLoadStream(dp->ctx, dp->strm, dp->con->err);
switch (ret)
{
case OCI_SUCCESS:
{
dp->status = OCI_DPS_PREPARED;
dp->nb_prcsd = dp->nb_cur;
dp->nb_loaded += dp->nb_cur;
res = OCI_DPR_COMPLETE;
break;
}
case OCI_ERROR:
{
res = OCI_DPR_ERROR;
OCI_ExceptionOCI(dp->con->err, dp->con, NULL);
break;
}
case OCI_NO_DATA:
{
res = OCI_DPR_EMPTY;
break;
}
case OCI_NEED_DATA:
{
res = OCI_DPR_PARTIAL;
break;
}
}
if (ret != OCI_SUCCESS)
{
ub4 size = sizeof(dp->nb_prcsd);
OCIAttrGet(dp->arr, OCI_HTYPE_DIRPATH_COLUMN_ARRAY, &dp->nb_prcsd,
&size, OCI_ATTR_NUM_ROWS, dp->con->err);
}
OCI_RESULT(ret == OCI_SUCCESS);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathFinish
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathFinish(OCI_DirPath *dp)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_PREPARED, FALSE);
OCI_DirPathReset(dp);
OCI_CALL2
(
res, dp->con,
OCIDirPathFinish(dp->ctx, dp->con->err)
)
if (res == TRUE)
dp->status = OCI_DPS_TERMINATED;
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathAbort
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathAbort(OCI_DirPath *dp)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIDirPathAbort(dp->ctx, dp->con->err)
)
if (res == TRUE)
dp->status = OCI_DPS_TERMINATED;
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSave
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSave(OCI_DirPath *dp)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_PREPARED, FALSE);
OCI_DirPathReset(dp);
OCI_CALL2
(
res, dp->con,
OCIDirPathDataSave(dp->ctx, dp->con->err, OCI_DIRPATH_DATASAVE_SAVEONLY)
)
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathFlushRow
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathFlushRow(OCI_DirPath *dp)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIDirPathFlushRow(dp->ctx, dp->con->err)
)
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetSize
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetCurrentRows(OCI_DirPath *dp, unsigned int nb_rows)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_PREPARED, FALSE);
OCI_CHECK_BOUND(dp->con, nb_rows, 1, dp->nb_rows, FALSE);
dp->nb_cur = nb_rows;
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetCurrentSize
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetCurrentRows(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->nb_cur;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetMaxSize
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetMaxRows(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->nb_rows;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetDateFormat
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetDateFormat(OCI_DirPath *dp, mtext *format)
{
boolean res = TRUE;
void *ostr = NULL;
int osize = -1;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_NOT_PREPARED, FALSE);
osize = -1;
ostr = OCI_GetInputMetaString(format, &osize);
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) ostr, (ub4) osize,
(ub4) OCI_ATTR_DATEFORMAT, dp->con->err)
)
OCI_ReleaseMetaString(ostr);
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetParallel
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetParallel(OCI_DirPath *dp, boolean value)
{
boolean res = TRUE;
ub1 enabled = (ub1) value;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_NOT_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) &enabled, (ub4) sizeof(enabled),
(ub4) OCI_ATTR_DIRPATH_PARALLEL, dp->con->err)
)
OCI_RESULT(res);
return res;}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetNoLog
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetNoLog(OCI_DirPath *dp, boolean value)
{
boolean res = TRUE;
ub1 nolog = (ub1) value;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_NOT_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) &nolog, (ub4) sizeof(nolog),
(ub4) OCI_ATTR_DIRPATH_NOLOG, dp->con->err)
)
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetCacheSize
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetCacheSize(OCI_DirPath *dp, unsigned int size)
{
boolean res = TRUE;
ub4 cache_size = size;
boolean enabled = FALSE;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_DATE_CACHE_ENABLED(dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_NOT_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) &cache_size, (ub4) sizeof(cache_size),
(ub4) OCI_ATTR_DIRPATH_DCACHE_SIZE, dp->con->err)
)
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) &enabled, (ub4) sizeof(enabled),
(ub4) OCI_ATTR_DIRPATH_DCACHE_DISABLE, dp->con->err)
)
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathSetBufferSize
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_DirPathSetBufferSize(OCI_DirPath *dp, unsigned int size)
{
boolean res = TRUE;
ub4 bufsize = (ub4) size;
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_CHECK_DIRPATH_STATUS(dp, OCI_DPS_NOT_PREPARED, FALSE);
OCI_CALL2
(
res, dp->con,
OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX,
(dvoid *) &bufsize, (ub4) sizeof(bufsize),
(ub4) OCI_ATTR_BUF_SIZE, dp->con->err)
)
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetRowCount
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetRowCount(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->nb_loaded;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetAffectedRows
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetAffectedRows(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->nb_prcsd;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetErrorColumn
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetErrorColumn(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->err_col + 1;
}
/* ------------------------------------------------------------------------ *
* OCI_DirPathGetErrorRow
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_DirPathGetErrorRow(OCI_DirPath *dp)
{
OCI_CHECK_PTR(OCI_IPC_DIRPATH, dp, FALSE);
OCI_RESULT(TRUE);
return dp->err_row + 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -