📄 library.c
字号:
OCILib.key_map = NULL;
return res;
}
/* ------------------------------------------------------------------------ *
* OCI_SetStatus
* ------------------------------------------------------------------------ */
void OCI_SetStatus(boolean res)
{
OCI_Error *err = OCI_ErrorGet(FALSE);
if (err != NULL)
{
err->raise = (res == FALSE);
}
}
/* ************************************************************************ *
* PUBLIC FUNCTIONS
* ************************************************************************ */
/* ------------------------------------------------------------------------ *
* OCI_Initialize
* ------------------------------------------------------------------------ */
boolean OCI_API OCI_Initialize(POCI_ERROR err_handler, const mtext *home,
unsigned int mode)
{
boolean res = TRUE;
ub4 oci_mode = OCI_ENV_MODE | OCI_OBJECT;
#ifdef OCI_IMPORT_RUNTIME
char path[OCI_SIZE_BUFFER+1];
size_t len = 0;
#endif
/* check if it was already initialized */
if (OCILib.loaded == TRUE)
return TRUE;
memset(&OCILib, 0, sizeof(OCI_Library));
OCILib.error_handler = err_handler;
OCILib.ver_compile = OCI_VERSION_COMPILE;
OCILib.ver_runtime = OCI_VERSION_RUNTIME;
OCILib.env_mode = mode;
#ifdef OCI_IMPORT_LINKAGE
OCI_NOT_USED(home);
#if defined(OCI_BIG_UINT_ENABLED)
OCILib.use_lob_ub8 = TRUE;
#endif
#if defined(OCI_STMT_SCROLLABLE_READONLY)
OCILib.use_scrollable_cursors = TRUE;
#endif
#else
memset(path, 0, sizeof(path));
#if defined(OCI_CHARSET_UNICODE)
if (home != NULL && home[0] != 0)
len = wcstombs(path, home, sizeof(path));
#else
if (home != NULL && home[0] != 0)
{
strncat(path, home, sizeof(path));
len = strlen(path);
}
#endif
if ((len > 0) && (len < sizeof(path)) && (path[len-1] != OCI_CHAR_SLASH))
{
path[len] = OCI_CHAR_SLASH;
len++;
}
strncat(path, OCI_DL_NAME, sizeof(path) - len);
OCILib.lib_handle = LIB_OPEN(path);
if (OCILib.lib_handle != NULL)
{
/* Now loading all symbols - no check is performed on each function,
Basic checks will be done to ensure we're loading an
Oracle and compatible library ...
*/
LIB_SYMBOL(OCILib.lib_handle, "OCIEnvCreate", OCIEnvCreate,
OCIENVCREATE);
LIB_SYMBOL(OCILib.lib_handle, "OCIServerAttach", OCIServerAttach,
OCISERVERATTACH);
LIB_SYMBOL(OCILib.lib_handle, "OCIServerDetach", OCIServerDetach,
OCISERVERDETACH);
LIB_SYMBOL(OCILib.lib_handle, "OCIHandleAlloc", OCIHandleAlloc,
OCIHANDLEALLOC);
LIB_SYMBOL(OCILib.lib_handle, "OCIHandleFree", OCIHandleFree,
OCIHANDLEFREE);
LIB_SYMBOL(OCILib.lib_handle, "OCIDescriptorAlloc", OCIDescriptorAlloc,
OCIDESCRIPTORALLOC);
LIB_SYMBOL(OCILib.lib_handle, "OCIDescriptorFree", OCIDescriptorFree,
OCIDESCRIPTORFREE);
LIB_SYMBOL(OCILib.lib_handle, "OCIAttrSet", OCIAttrSet,
OCIATTRSET);
LIB_SYMBOL(OCILib.lib_handle, "OCIAttrGet", OCIAttrGet,
OCIATTRGET);
LIB_SYMBOL(OCILib.lib_handle, "OCIParamSet", OCIParamSet,
OCIPARAMSET);
LIB_SYMBOL(OCILib.lib_handle, "OCIParamGet", OCIParamGet,
OCIPARAMGET);
LIB_SYMBOL(OCILib.lib_handle, "OCISessionBegin", OCISessionBegin,
OCISESSIONBEGIN);
LIB_SYMBOL(OCILib.lib_handle, "OCISessionEnd", OCISessionEnd,
OCISESSIONEND);
LIB_SYMBOL(OCILib.lib_handle, "OCIPasswordChange", OCIPasswordChange,
OCIPASSWORDCHANGE);
LIB_SYMBOL(OCILib.lib_handle, "OCITransStart", OCITransStart,
OCITRANSSTART);
LIB_SYMBOL(OCILib.lib_handle, "OCITransDetach", OCITransDetach,
OCITRANSDETACH);
LIB_SYMBOL(OCILib.lib_handle, "OCITransPrepare", OCITransPrepare,
OCITRANSPREPARE);
LIB_SYMBOL(OCILib.lib_handle, "OCITransForget", OCITransForget,
OCITRANSFORGET);
LIB_SYMBOL(OCILib.lib_handle, "OCITransCommit", OCITransCommit,
OCITRANSCOMMIT);
LIB_SYMBOL(OCILib.lib_handle, "OCITransRollback", OCITransRollback,
OCITRANSROLLBACK);
LIB_SYMBOL(OCILib.lib_handle, "OCIErrorGet", OCIErrorGet,
OCIERRORGET);
LIB_SYMBOL(OCILib.lib_handle, "OCIServerVersion", OCIServerVersion,
OCISERVERVERSION);
LIB_SYMBOL(OCILib.lib_handle, "OCIBreak", OCIBreak,
OCIBREAK);
LIB_SYMBOL(OCILib.lib_handle, "OCIBindByPos", OCIBindByPos,
OCIBINDBYPOS);
LIB_SYMBOL(OCILib.lib_handle, "OCIBindByName", OCIBindByName,
OCIBINDBYNAME);
LIB_SYMBOL(OCILib.lib_handle, "OCIBindDynamic", OCIBindDynamic,
OCIBINDDYNAMIC);
LIB_SYMBOL(OCILib.lib_handle, "OCIBindObject", OCIBindObject,
OCIBINDOBJECT);
LIB_SYMBOL(OCILib.lib_handle, "OCIDefineByPos", OCIDefineByPos,
OCIDEFINEBYPOS);
LIB_SYMBOL(OCILib.lib_handle, "OCIDefineObject", OCIDefineObject,
OCIDEFINEOBJECT);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtPrepare", OCIStmtPrepare,
OCISTMTPREPARE);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtExecute", OCIStmtExecute,
OCISTMTEXECUTE);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtFetch", OCIStmtFetch,
OCISTMTFETCH);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtFetch2", OCIStmtFetch2,
OCISTMTFETCH2);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtGetPieceInfo", OCIStmtGetPieceInfo,
OCISTMTGETPIECEINFO);
LIB_SYMBOL(OCILib.lib_handle, "OCIStmtSetPieceInfo", OCIStmtSetPieceInfo,
OCISTMTSETPIECEINFO);
LIB_SYMBOL(OCILib.lib_handle, "OCILobCreateTemporary", OCILobCreateTemporary,
OCILOBCREATETEMPORARY);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFreeTemporary", OCILobFreeTemporary,
OCILOBFREETEMPORARY);
LIB_SYMBOL(OCILib.lib_handle, "OCILobIsTemporary", OCILobIsTemporary,
OCILOBISTEMPORARY);
LIB_SYMBOL(OCILib.lib_handle, "OCILobRead", OCILobRead,
OCILOBREAD);
LIB_SYMBOL(OCILib.lib_handle, "OCILobWrite", OCILobWrite,
OCILOBWRITE);
LIB_SYMBOL(OCILib.lib_handle, "OCILobCopy", OCILobCopy,
OCILOBCOPY);
LIB_SYMBOL(OCILib.lib_handle, "OCILobTrim", OCILobTrim,
OCILOBTRIM);
LIB_SYMBOL(OCILib.lib_handle, "OCILobErase", OCILobErase,
OCILOBERASE);
LIB_SYMBOL(OCILib.lib_handle, "OCILobAppend", OCILobAppend,
OCILOBAPPEND);
LIB_SYMBOL(OCILib.lib_handle, "OCILobGetLength", OCILobGetLength,
OCILOBGETLENGTH);
LIB_SYMBOL(OCILib.lib_handle, "OCILobOpen", OCILobOpen,
OCILOBOPEN);
LIB_SYMBOL(OCILib.lib_handle, "OCILobClose", OCILobClose,
OCILOBCLOSE);
#ifdef ORAXB8_DEFINED
LIB_SYMBOL(OCILib.lib_handle, "OCILobCopy2", OCILobCopy2,
OCILOBCOPY2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobErase2", OCILobErase2,
OCILOBERASE2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobGetLength2", OCILobGetLength2,
OCILOBGETLENGTH2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobLoadFromFile2", OCILobLoadFromFile2,
OCILOBLOADFROMFILE2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobRead2", OCILobRead2,
OCILOBREAD2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobTrim2", OCILobTrim2,
OCILOBTRIM2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobWrite2", OCILobWrite2,
OCILOBWRITE2);
LIB_SYMBOL(OCILib.lib_handle, "OCILobWriteAppend2", OCILobWriteAppend2,
OCILOBWRITEAPPEND2);
#endif
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileOpen", OCILobFileOpen,
OCILOBFILEOPEN);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileClose", OCILobFileClose,
OCILOBFILECLOSE);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileCloseAll", OCILobFileCloseAll,
OCILOBFILECLOSEALL);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileIsOpen", OCILobFileIsOpen,
OCILOBFILEISOPEN);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileExists", OCILobFileExists,
OCILOBFILEEXISTS);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileGetName", OCILobFileGetName,
OCILOBFIELGETNAME);
LIB_SYMBOL(OCILib.lib_handle, "OCILobFileSetName", OCILobFileSetName,
OCILOBFILESETNAME);
LIB_SYMBOL(OCILib.lib_handle, "OCILobLoadFromFile", OCILobLoadFromFile,
OCILOBLOADFROMFILE);
LIB_SYMBOL(OCILib.lib_handle, "OCILobWriteAppend", OCILobWriteAppend,
OCILOBWRITEAPPEND);
LIB_SYMBOL(OCILib.lib_handle, "OCILobIsEqual", OCILobIsEqual,
OCILOBISEQUAL);
LIB_SYMBOL(OCILib.lib_handle, "OCILobAssign", OCILobAssign,
OCILOBASSIGN);
LIB_SYMBOL(OCILib.lib_handle, "OCILobLocatorAssign", OCILobLocatorAssign,
OCILOBLOCATORASSIGN);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateAssign", OCIDateAssign,
OCIDATEASSIGN);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateToText", OCIDateToText,
OCIDATETOTEXT);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateFromText", OCIDateFromText,
OCIDATEFROMTEXT);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateCompare", OCIDateCompare,
OCIDATECOMPARE);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateAddMonths", OCIDateAddMonths,
OCIDATEADDMONTHS);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateAddDays", OCIDateAddDays,
OCIDATEADDDAYS);
LIB_SYMBOL(OCILib.lib_handle, "OCIDateLastDay", OCIDateLastDay,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -