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

📄 oraapi.h

📁 能够连接各种数据库的API
💻 H
📖 第 1 页 / 共 2 页
字号:
// ora8API.h
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ORA8API_H__11EAA72A_EFF5_4944_8B1F_44973D30EF73__INCLUDED_)
#define AFX_ORA8API_H__11EAA72A_EFF5_4944_8B1F_44973D30EF73__INCLUDED_

#include "SQLAPI.h"

// API header(s)
#ifdef LINUX
	#include "./ora_linux/oci.h"
#endif
#ifdef WIN32
	#include "./ora_win32/oci.h"
#endif

extern long g_nORA8DLLVersionLoaded;

extern bool CanBeLoadedOCI8();
extern void AddORA8Support();
extern void ReleaseORA8Support();

// 8.0.x calls
typedef sword   (*OCIInitialize_t)(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) );

typedef sword   (*OCIHandleAlloc_t)(CONST dvoid *parenth, dvoid **hndlpp, ub4 type, 
                       size_t xtramem_sz, dvoid **usrmempp);

typedef sword   (*OCIHandleFree_t)(dvoid *hndlp, ub4 type);


typedef sword   (*OCIDescriptorAlloc_t)(CONST dvoid *parenth, dvoid **descpp, ub4 type,
                     size_t xtramem_sz, dvoid **usrmempp);

typedef sword   (*OCIDescriptorFree_t)(dvoid *descp, ub4 type);

typedef sword   (*OCIEnvInit_t)(OCIEnv **envp, ub4 mode, 
                    size_t xtramem_sz, dvoid **usrmempp);

typedef sword   (*OCIServerAttach_t)(OCIServer *srvhp, OCIError *errhp,
                          CONST text *dblink, sb4 dblink_len, ub4 mode);

typedef sword   (*OCIServerDetach_t)(OCIServer *srvhp, OCIError *errhp, ub4 mode);

typedef sword   (*OCISessionBegin_t)(OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp,
                          ub4 credt, ub4 mode);

typedef sword   (*OCISessionEnd_t)(OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp, 
                         ub4 mode);

typedef sword   (*OCILogon_t)(OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, 
		  CONST text *username, ub4 uname_len, 
		  CONST text *password, ub4 passwd_len, 
		  CONST text *dbname, ub4 dbname_len);

typedef sword   (*OCILogoff_t)(OCISvcCtx *svchp, OCIError *errhp);


typedef sword   (*OCIPasswordChange_t)(OCISvcCtx *svchp, OCIError *errhp, 
                             CONST text *user_name, ub4 usernm_len, 
                             CONST text *opasswd, ub4 opasswd_len, 
                             CONST text *npasswd, ub4 npasswd_len, ub4 mode);

typedef sword   (*OCIStmtPrepare_t)(OCIStmt *stmtp, OCIError *errhp, CONST text *stmt,
                          ub4 stmt_len, ub4 language, ub4 mode);

typedef sword   (*OCIBindByPos_t)(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
		       ub4 position, dvoid *valuep, sb4 value_sz,
		       ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep,
		       ub4 maxarr_len, ub4 *curelep, ub4 mode);

typedef sword   (*OCIBindByName_t)(OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp,
			 CONST text *placeholder, sb4 placeh_len, 
                         dvoid *valuep, sb4 value_sz, ub2 dty, 
                         dvoid *indp, ub2 *alenp, ub2 *rcodep, 
                         ub4 maxarr_len, ub4 *curelep, ub4 mode);

typedef sword   (*OCIBindObject_t)(OCIBind *bindp, OCIError *errhp, CONST OCIType *type, 
			dvoid **pgvpp, ub4 *pvszsp, dvoid **indpp, 
			ub4 *indszp);

typedef sword   (*OCIBindDynamic_t)(OCIBind *bindp, OCIError *errhp, dvoid *ictxp,
			  OCICallbackInBind icbfp, dvoid *octxp,
			  OCICallbackOutBind ocbfp);

typedef sword   (*OCIBindArrayOfStruct_t)(OCIBind *bindp, OCIError *errhp, 
                                ub4 pvskip, ub4 indskip,
                                ub4 alskip, ub4 rcskip);

typedef sword   (*OCIStmtGetPieceInfo_t)(OCIStmt *stmtp, OCIError *errhp, 
                               dvoid **hndlpp, ub4 *typep,
                               ub1 *in_outp, ub4 *iterp, ub4 *idxp, 
                               ub1 *piecep);

typedef sword   (*OCIStmtSetPieceInfo_t)(dvoid *hndlp, ub4 type, OCIError *errhp, 
                               CONST dvoid *bufp, ub4 *alenp, ub1 piece, 
                               CONST dvoid *indp, ub2 *rcodep);

typedef sword   (*OCIStmtExecute_t)(OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, 
                         ub4 iters, ub4 rowoff, CONST OCISnapshot *snap_in, 
                         OCISnapshot *snap_out, ub4 mode);

typedef sword   (*OCIDefineByPos_t)(OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp,
			 ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty,
			 dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);

typedef sword   (*OCIDefineObject_t)(OCIDefine *defnp, OCIError *errhp, 
                          CONST OCIType *type, dvoid **pgvpp, 
                          ub4 *pvszsp, dvoid **indpp, ub4 *indszp);

typedef sword   (*OCIDefineDynamic_t)(OCIDefine *defnp, OCIError *errhp, dvoid *octxp,
                            OCICallbackDefine ocbfp);

typedef sword   (*OCIDefineArrayOfStruct_t)(OCIDefine *defnp, OCIError *errhp, ub4 pvskip,
                                 ub4 indskip, ub4 rlskip, ub4 rcskip);

typedef sword   (*OCIStmtFetch_t)(OCIStmt *stmtp, OCIError *errhp, ub4 nrows, 
                        ub2 orientation, ub4 mode);

typedef sword   (*OCIStmtGetBindInfo_t)(OCIStmt *stmtp, OCIError *errhp, ub4 size, 
                              ub4 startloc,
                              sb4 *found, text *bvnp[], ub1 bvnl[],
                              text *invp[], ub1 inpl[], ub1 dupl[],
                              OCIBind *hndl[]);

typedef sword   (*OCIDescribeAny_t)(OCISvcCtx *svchp, OCIError *errhp, 
                         dvoid *objptr, 
                         ub4 objnm_len, ub1 objptr_typ, ub1 info_level,
			 ub1 objtyp, OCIDescribe *dschp);

typedef sword   (*OCIParamGet_t)(CONST dvoid *hndlp, ub4 htype, OCIError *errhp, 
                     dvoid **parmdpp, ub4 pos);

typedef sword   (*OCIParamSet_t)(dvoid *hdlp, ub4 htyp, OCIError *errhp, CONST dvoid *dscp,
                    ub4 dtyp, ub4 pos);

typedef sword   (*OCITransStart_t)(OCISvcCtx *svchp, OCIError *errhp, 
                        uword timeout, ub4 flags );

typedef sword   (*OCITransDetach_t)(OCISvcCtx *svchp, OCIError *errhp, ub4 flags );

typedef sword   (*OCITransCommit_t)(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);

typedef sword   (*OCITransRollback_t)(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);

typedef sword   (*OCITransPrepare_t)(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);

typedef sword   (*OCITransForget_t)(OCISvcCtx *svchp, OCIError *errhp, ub4 flags);

typedef sword   (*OCIErrorGet_t)(dvoid *hndlp, ub4 recordno, text *sqlstate,
                       sb4 *errcodep, text *bufp, ub4 bufsiz, ub4 type);

typedef sword   (*OCILobAppend_t)(OCISvcCtx *svchp, OCIError *errhp, 
                       OCILobLocator *dst_locp,
                       OCILobLocator *src_locp);

typedef sword   (*OCILobAssign_t)(OCIEnv *envhp, OCIError *errhp, 
                      CONST OCILobLocator *src_locp, 
                      OCILobLocator **dst_locpp);

typedef sword   (*OCILobCharSetForm_t)(OCIEnv *envhp, OCIError *errhp, 
                           CONST OCILobLocator *locp, ub1 *csfrm);

typedef sword   (*OCILobCharSetId_t)(OCIEnv *envhp, OCIError *errhp, 
                         CONST OCILobLocator *locp, ub2 *csid);

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

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

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

typedef sword   (*OCILobErase_t)(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp,
                      ub4 *amount, ub4 offset);

typedef sword   (*OCILobFileClose_t)(OCISvcCtx *svchp, OCIError *errhp, 
                         OCILobLocator *filep);

typedef sword   (*OCILobFileCloseAll_t)(OCISvcCtx *svchp, OCIError *errhp);

typedef sword   (*OCILobFileExists_t)(OCISvcCtx *svchp, OCIError *errhp, 
			  OCILobLocator *filep,
			  boolean *flag);

typedef sword   (*OCILobFileGetName_t)(OCIEnv *envhp, OCIError *errhp, 
                           CONST OCILobLocator *filep, 
                           text *dir_alias, ub2 *d_length, 
                           text *filename, ub2 *f_length);

typedef sword   (*OCILobFileIsOpen_t)(OCISvcCtx *svchp, OCIError *errhp, 
                          OCILobLocator *filep,
                          boolean *flag);

typedef sword   (*OCILobFileOpen_t)(OCISvcCtx *svchp, OCIError *errhp, 
                        OCILobLocator *filep,
                        ub1 mode);

typedef sword   (*OCILobFileSetName_t)(OCIEnv *envhp, OCIError *errhp, 
                           OCILobLocator **filepp, 
                           CONST text *dir_alias, ub2 d_length, 
                           CONST text *filename, ub2 f_length);

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, 

⌨️ 快捷键说明

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