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

📄 lob.h

📁 在动态库中实现异步导出大数据量的oracle数据
💻 H
字号:
#ifndef __LOB_H_
#define __LOB_H_

#include "BFile.h"
#include "ocicpp.h"
#include "OraError.h"

#if ( OCILIBVERMAJOR>=8 && OCILIBVERMINOR>=1 ) || DOXYGEN
#include "TLob.h"
#endif

namespace OCICPP {

class Lob {
private:
	OCILobLocator *lob;
	OCIError *errhp;
	OCISvcCtx *svchp;
	LobType type; /* CLOB or BLOB or FILE */
	unsigned long len; /* Overall length */
	unsigned offset; /* Current offset default 1 */
	CacheMode cache; /* CACHE_ON or CACHE_OFF not supported yet */
	bool wasBound;
public:
	Lob();
	Lob(OCISvcCtx *svcctx,OCILobLocator *lob_desc,OCIError *err,LobType type,CacheMode cache_mode);
	void init(OCISvcCtx *svcctx,OCILobLocator *lob_desc,OCIError *err,LobType type,CacheMode cache_mode);
	void init(OCIEnv *env,OCISvcCtx *svcctx,OCIError *err);
	~Lob();
	void drop();
	void seek(unsigned offset,LobDirection dir); /* Set's the current position
								 dir is SET or CUR or END
								 similair to stdc seek call 
							  */
	unsigned tell();
	unsigned read(void *buff,int blen); /* returns number of bytes or chracters actually read */
	unsigned write(const void *buff,int blen);
	void trunc(unsigned new_len); /* Truncate lob */
	void loadFromBFile(BFile &bfile,unsigned int amount,unsigned int dst_offset,unsigned int src_offset);
	void loadFromFile(FILE *);
	void saveToFile(FILE *);
	
	string toString();
		
	void setCacheMode(CacheMode mode); /* mode is CACHE_ON or CACHE_OFF */
	unsigned getLen() const;
	void copyFrom(Lob &src_lob,unsigned amount,unsigned dst_off,unsigned src_off);
	void copyFrom(BFile &src_file,unsigned amount,unsigned dst_off,unsigned src_off);		
//#if ( OCILIBVERMAJOR>=8 && OCILIBVERMINOR>=1 ) || DOXYGEN
//	void copyFrom(TLob &src_file,unsigned amount,unsigned dst_off,unsigned src_off);		
//	friend class TLob;
//#endif
	friend class Cursor;

};	
	
}
#endif

⌨️ 快捷键说明

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