📄 file.c
字号:
(
res, file->con,
OCILobRead(file->con->cxt, file->con->err,
file->handle, &size_out, offset,
buffer, size_in, (dvoid *) NULL,
NULL, (ub2) 0, (ub1) SQLCS_IMPLICIT)
)
}
if (res == TRUE)
file->offset += (big_uint) size_out;
OCI_RESULT(res);
return size_out;
}
/* ------------------------------------------------------------------------ *
* OCI_FileGetType
* ------------------------------------------------------------------------ */
unsigned int OCI_API OCI_FileGetType(OCI_File *file)
{
OCI_CHECK_PTR(OCI_IPC_FILE, file, 0);
OCI_RESULT(TRUE);
return file->type;
}
/* ------------------------------------------------------------------------ *
* OCI_FileGetSize
* ------------------------------------------------------------------------ */
big_uint OCI_API OCI_FileGetSize(OCI_File *file)
{
boolean res = TRUE;
big_uint size = 0;
OCI_CHECK_PTR(OCI_IPC_FILE, file, 0);
#ifdef OCI_LOB2_API_ENABLED
if (OCILib.use_lob_ub8)
{
OCI_CALL2
(
res, file->con,
OCILobGetLength2(file->con->cxt, file->con->err,
file->handle, (ub8 *) &size)
)
}
else
#endif
{
ub4 size32 = (ub4) size;
OCI_CALL2
(
res, file->con,
OCILobGetLength(file->con->cxt, file->con->err,
file->handle, &size32)
)
size = (big_uint) size32;
}
OCI_RESULT(res);
return size;
}
/* ------------------------------------------------------------------------ *
* OCI_LobFileExists
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileExists(OCI_File *file)
{
boolean res = TRUE;
boolean value = FALSE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CALL2
(
res, file->con,
OCILobFileExists(file->con->cxt, file->con->err, file->handle, &value)
)
OCI_RESULT(res);
return value;
}
/* ------------------------------------------------------------------------ *
* OCI_FileSetName
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileSetName(OCI_File *file, const mtext *dir,
const mtext *name)
{
void *ostr1 = NULL;
void *ostr2 = NULL;
int osize1 = -1;
int osize2 = -1;
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
ostr1 = OCI_GetInputMetaString(dir, &osize1);
ostr2 = OCI_GetInputMetaString(name, &osize2);
OCI_CALL2
(
res, file->con,
OCILobFileSetName(OCILib.env, file->con->err,
&file->handle,
(OraText *) ostr1, (ub2) osize1,
(OraText *) ostr2, (ub2) osize2)
)
OCI_ReleaseMetaString(ostr1);
OCI_ReleaseMetaString(ostr2);
if (res == TRUE)
res = OCI_FileGetInfo(file);
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_FileGetDirectory
* ------------------------------------------------------------------------ */
const mtext * OCI_API OCI_FileGetDirectory(OCI_File *file)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, NULL);
if ((file->dir == NULL) || (file->dir[0] == 0))
res = OCI_FileGetInfo(file);
return file->dir;
}
/* ------------------------------------------------------------------------ *
* OCI_FileGetName
* ------------------------------------------------------------------------ */
const mtext * OCI_API OCI_FileGetName(OCI_File *file)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, NULL);
if ((file->name == NULL) || (file->name[0] == 0))
res = OCI_FileGetInfo(file);
OCI_RESULT(res);
return file->name;
}
/* ------------------------------------------------------------------------ *
* OCI_FileOpen
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileOpen(OCI_File *file)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CALL2
(
res, file->con,
OCILobFileOpen(file->con->cxt, file->con->err,
file->handle, (ub1) OCI_LOB_READONLY)
)
if (res == TRUE)
file->con->nb_files++;
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_LobFileIsOpen
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileIsOpen(OCI_File *file)
{
boolean res = TRUE;
boolean value = FALSE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CALL2
(
res, file->con,
OCILobFileIsOpen(file->con->cxt, file->con->err, file->handle, &value)
)
OCI_RESULT(res);
return value;
}
/* ------------------------------------------------------------------------ *
* OCI_FileClose
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileClose(OCI_File *file)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CALL2
(
res, file->con,
OCILobFileClose(file->con->cxt, file->con->err, file->handle)
)
if (res == TRUE)
file->con->nb_files--;
OCI_RESULT(res);
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_FileIsEqual
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileIsEqual(OCI_File *file, OCI_File *file2)
{
boolean res = TRUE;
boolean value = FALSE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CHECK_PTR(OCI_IPC_FILE, file2, FALSE);
OCI_CALL2
(
res, file->con,
OCILobIsEqual(OCILib.env, file->handle, file2->handle, &value)
)
OCI_RESULT(res);
return value;
}
/* ------------------------------------------------------------------------ *
* OCI_FileAssign
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_FileAssign(OCI_File *file, OCI_File *file_src)
{
boolean res = TRUE;
OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);
OCI_CHECK_PTR(OCI_IPC_FILE, file_src, FALSE);
if (file->hstate == OCI_OBJECT_ALLOCATED)
{
OCI_CALL2
(
res, file->con,
OCILobLocatorAssign(file->con->cxt, file->con->err,
file_src->handle, &file->handle)
)
}
else
{
OCI_CALL2
(
res, file->con,
OCILobAssign(OCILib.env, file->con->err,
file_src->handle, &file->handle)
)
}
if (res == TRUE)
OCI_FileGetInfo(file);
OCI_RESULT(res);
return res;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -