⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oraapi.h

📁 通用的数据库中间库
💻 H
📖 第 1 页 / 共 2 页
字号:

typedef sword   (*OCILobFlushBuffer_t)(OCISvcCtx       *svchp,
                           OCIError        *errhp,
                           OCILobLocator   *locp,
                           ub4              flag);

typedef sword   (*OCILobGetLength_t)(OCISvcCtx *svchp, OCIError *errhp, 
                          OCILobLocator *locp,
                          ub4 *lenp);

typedef sword   (*OCILobIsEqual_t)(OCIEnv *envhp, CONST OCILobLocator *x, 
                        CONST OCILobLocator *y, 
                        boolean *is_equal);

typedef sword   (*OCILobLoadFromFile_t)(OCISvcCtx *svchp, OCIError *errhp, 
                            OCILobLocator *dst_locp,
       	                    OCILobLocator *src_filep, 
                            ub4 amount, ub4 dst_offset, 
                            ub4 src_offset);

typedef sword   (*OCILobLocatorIsInit_t)(OCIEnv *envhp, OCIError *errhp, 
                             CONST OCILobLocator *locp, 
                             boolean *is_initialized);

typedef sword   (*OCILobRead_t)(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
                     ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, 
                     dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, 
                                              CONST dvoid *bufp, 
                                              ub4 len, 
                                              ub1 piece),
                     ub2 csid, ub1 csfrm);

typedef sword   (*OCILobTrim_t)(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
                     ub4 newlen);

typedef sword   (*OCILobWrite_t)(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
                      ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, 
                      ub1 piece, dvoid *ctxp, 
                      sb4 (*cbfp)(dvoid *ctxp, 
                                  dvoid *bufp, 
                                  ub4 *len, 
                                  ub1 *piece),
                      ub2 csid, ub1 csfrm);

typedef sword   (*OCIBreak_t)(dvoid *hndlp, OCIError *errhp);

typedef sword   (*OCIReset_t)(dvoid *hndlp, OCIError *errhp);

typedef sword   (*OCIServerVersion_t)(dvoid *hndlp, OCIError *errhp, text *bufp, 
                           ub4 bufsz,
                           ub1 hndltype);


typedef sword   (*OCIAttrGet_t)(CONST dvoid *trgthndlp, ub4 trghndltyp, 
                    dvoid *attributep, ub4 *sizep, ub4 attrtype, 
                    OCIError *errhp);

typedef sword   (*OCIAttrSet_t)(dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep,
                    ub4 size, ub4 attrtype, OCIError *errhp);

typedef sword   (*OCISvcCtxToLda_t)(OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap);

typedef sword   (*OCILdaToSvcCtx_t)(OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap);

typedef sword   (*OCIResultSetToStmt_t)(OCIResult *rsetdp, OCIError *errhp);

// 8.1.x (8i) calls
typedef sword   (*OCIEnvCreate_t)(OCIEnv **envp, ub4 mode, dvoid *ctxp,
                 dvoid *(*malocfp)(dvoid *ctxp, size_t size),
                 dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),
                 void   (*mfreefp)(dvoid *ctxp, dvoid *memptr),
                 size_t xtramem_sz, dvoid **usrmempp);

typedef sword (*OCIDurationBegin_t)(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
                           OCIDuration parent, OCIDuration *dur    );

typedef sword (*OCIDurationEnd_t)(    OCIEnv *env, OCIError *err, CONST OCISvcCtx *svc, 
                         OCIDuration duration    );

typedef sword (*OCILobCreateTemporary_t)(OCISvcCtx          *svchp,
                            OCIError           *errhp,
                            OCILobLocator      *locp,
                            ub2                 csid,
                            ub1                 csfrm,
                            ub1                 lobtype,
                            boolean             cache,
                            OCIDuration         duration);

typedef sword (*OCILobFreeTemporary_t)(OCISvcCtx          *svchp,
                          OCIError           *errhp,
                          OCILobLocator      *locp);

typedef sword (*OCILobIsTemporary_t)(OCIEnv            *envp,
                        OCIError          *errhp,
                        OCILobLocator     *locp,
                        boolean           *is_temporary);



// API declarations
class SQLAPI_API ora8API : public saAPI
{
public:
	ora8API();

	// 8.0.x calls
	OCIInitialize_t	OCIInitialize;
	OCIHandleAlloc_t	OCIHandleAlloc;
	OCIHandleFree_t	OCIHandleFree;
	OCIDescriptorAlloc_t	OCIDescriptorAlloc;
	OCIDescriptorFree_t	OCIDescriptorFree;
	OCIEnvInit_t	OCIEnvInit;
	OCIServerAttach_t	OCIServerAttach;
	OCIServerDetach_t	OCIServerDetach;
	OCISessionBegin_t	OCISessionBegin;
	OCISessionEnd_t	OCISessionEnd;
	OCILogon_t	OCILogon;
	OCILogoff_t	OCILogoff;
	OCIPasswordChange_t	OCIPasswordChange;
	OCIStmtPrepare_t	OCIStmtPrepare;
	OCIBindByPos_t	OCIBindByPos;
	OCIBindByName_t	OCIBindByName;
	OCIBindObject_t	OCIBindObject;
	OCIBindDynamic_t	OCIBindDynamic;
	OCIBindArrayOfStruct_t	OCIBindArrayOfStruct;
	OCIStmtGetPieceInfo_t	OCIStmtGetPieceInfo;
	OCIStmtSetPieceInfo_t	OCIStmtSetPieceInfo;
	OCIStmtExecute_t	OCIStmtExecute;
	OCIDefineByPos_t	OCIDefineByPos;
	OCIDefineObject_t	OCIDefineObject;
	OCIDefineDynamic_t	OCIDefineDynamic;
	OCIDefineArrayOfStruct_t	OCIDefineArrayOfStruct;
	OCIStmtFetch_t	OCIStmtFetch;
	OCIStmtGetBindInfo_t	OCIStmtGetBindInfo;
	OCIDescribeAny_t	OCIDescribeAny;
	OCIParamGet_t	OCIParamGet;
	OCIParamSet_t	OCIParamSet;
	OCITransStart_t	OCITransStart;
	OCITransDetach_t	OCITransDetach;
	OCITransCommit_t	OCITransCommit;
	OCITransRollback_t	OCITransRollback;
	OCITransPrepare_t	OCITransPrepare;
	OCITransForget_t	OCITransForget;
	OCIErrorGet_t	OCIErrorGet;
	OCILobAppend_t	OCILobAppend;
	OCILobAssign_t	OCILobAssign;
	OCILobCharSetForm_t	OCILobCharSetForm;
	OCILobCharSetId_t	OCILobCharSetId;
	OCILobCopy_t	OCILobCopy;
	OCILobDisableBuffering_t	OCILobDisableBuffering;
	OCILobEnableBuffering_t	OCILobEnableBuffering;
	OCILobErase_t	OCILobErase;
	OCILobFileClose_t	OCILobFileClose;
	OCILobFileCloseAll_t	OCILobFileCloseAll;
	OCILobFileExists_t	OCILobFileExists;
	OCILobFileGetName_t	OCILobFileGetName;
	OCILobFileIsOpen_t	OCILobFileIsOpen;
	OCILobFileOpen_t	OCILobFileOpen;
	OCILobFileSetName_t	OCILobFileSetName;
	OCILobFlushBuffer_t	OCILobFlushBuffer;
	OCILobGetLength_t	OCILobGetLength;
	OCILobIsEqual_t	OCILobIsEqual;
	OCILobLoadFromFile_t	OCILobLoadFromFile;
	OCILobLocatorIsInit_t	OCILobLocatorIsInit;
	OCILobRead_t	OCILobRead;
	OCILobTrim_t	OCILobTrim;
	OCILobWrite_t	OCILobWrite;
	OCIBreak_t	OCIBreak;
	OCIReset_t	OCIReset;
	OCIServerVersion_t	OCIServerVersion;
	OCIAttrGet_t	OCIAttrGet;
	OCIAttrSet_t	OCIAttrSet;
	OCISvcCtxToLda_t	OCISvcCtxToLda;
	OCILdaToSvcCtx_t	OCILdaToSvcCtx;
	OCIResultSetToStmt_t	OCIResultSetToStmt;

	// 8.1.x (8i) calls
	OCIEnvCreate_t	OCIEnvCreate;
	OCIDurationBegin_t	OCIDurationBegin;
	OCIDurationEnd_t	OCIDurationEnd;
	OCILobCreateTemporary_t	OCILobCreateTemporary;
	OCILobFreeTemporary_t	OCILobFreeTemporary;
	OCILobIsTemporary_t	OCILobIsTemporary;
};

class SQLAPI_API ora8ConnectionHandles : public saConnectionHandles
{
public:
	ora8ConnectionHandles();

	OCIEnv		*m_pOCIEnv;
	OCIError	*m_pOCIError;
	OCISvcCtx	*m_pOCISvcCtx;
	OCIServer	*m_pOCIServer;
	OCISession	*m_pOCISession;
};

class SQLAPI_API ora8CommandHandles : public saCommandHandles
{
public:
	ora8CommandHandles();

	OCIStmt			*m_pOCIStmt;
	OCIError		*m_pOCIError;	// cursor owned error handle
};

extern ora8API g_ora8API;

#endif // !defined(AFX_ORA8API_H__11EAA72A_EFF5_4944_8B1F_44973D30EF73__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -