📄 ocilob.h
字号:
#ifndef _COCILob
#define _COCILob
#ifndef _COCISession
#include "ocisess.h"
#endif
#ifndef _COCIBase
#include "ocibase.h"
#endif
#ifndef OCI_ORACLE
#include "oci.h"
#endif
#ifndef _STRING_
#include <string.h>
#endif
class COCISession;
class COCIFile;
class COCIBinary;
class COCILob : public COCIBase
{
protected:
COCILob(const COCISession& Sess, ub4 type = OCI_DTYPE_LOB);
COCILob(const COCISession& Sess, dvoid* instance);
COCILob(const COCILob& src);
~COCILob();
public:
void append(const COCILob& src);
void assign(const COCILob& src);
void copy(const COCILob& src, ub4 amount, ub4 dst_offset = 1, ub4 src_offset = 1);
void set_buffering(bool buffer = true);
ub4 erase(ub4 amount, ub4 offset);
void flush_buffer(ub4 flag = OCI_LOB_BUFFER_FREE);
ub4 get_length(void);
bool is_equal(const COCILob& src);
void load_from_file(const COCIFile& src, ub4 amount, ub4 dst_offset = 1, ub4 src_offset = 1);
bool is_init(void);
ub4 read(ub4* bufp, ub4 amount);
void trim(ub4 newlen);
ub4 write(ub4* bufp, ub4 amount);
OCILobLocator*& get_locator() {return m_pLobLocator;}
ub2 get_data_type(){return m_DataType;}
void make_empty(void);
void set_read_offset(ub4 read_offset){m_read_offset = read_offset;}
ub4 get_read_offset(void){return m_read_offset;}
void set_write_offset(ub4 write_offset){m_write_offset = write_offset;}
ub4 get_write_offset(void){return m_write_offset;}
void set_callback_ctx(dvoid* ctxp){m_ctxp = ctxp;}
dvoid* get_callback_ctx(void){return m_ctxp;}
void set_read_callback_function(OCICallbackLobRead cbfpRead){m_cbfpRead = cbfpRead;}
OCICallbackLobRead get_read_callback_function(void){return m_cbfpRead;}
void set_write_callback_function(OCICallbackLobWrite cbfpWrite){m_cbfpWrite = cbfpWrite;}
OCICallbackLobWrite get_write_callback_function(void){return m_cbfpWrite;}
void set_csid(ub2 csid){m_csid = csid;}
ub2 get_csid(void){return m_csid;}
void set_csfrm(ub1 csfrm){m_csfrm = csfrm;}
ub2 get_csfrm(void){return m_csfrm;}
// Write operator
friend COCILob& operator << (COCILob& lob, COCIBinary& data);
// Read operator
friend COCILob& operator >> (COCILob& lob, COCIBinary& data);
COCILob& operator = (const COCILob& src);
protected:
const COCISession& m_Session;
OCILobLocator* m_pLobLocator;
ub2 m_DataType;
private:
ub4 m_read_offset;
ub4 m_write_offset;
dvoid* m_ctxp;
OCICallbackLobRead m_cbfpRead;
OCICallbackLobWrite m_cbfpWrite;
ub2 m_csid;
ub1 m_csfrm;
ub4 m_type;
};
class COCICLob : public COCILob
{
public:
COCICLob(const COCISession& Sess);
COCICLob(const COCISession& Sess, dvoid* instance);
COCICLob(const COCICLob& src);
~COCICLob();
COCICLob& operator = (const COCICLob& src);
// Write operator
friend COCICLob& operator << (COCICLob& lob, char* data);
// Read operator
friend COCICLob& operator >> (COCICLob& lob, char* data);
ub1 get_char_set_form(void);
ub2 get_char_set_id(void);
};
class COCIBLob : public COCILob
{
public:
COCIBLob(const COCISession& Sess);
COCIBLob(const COCISession& Sess, dvoid* instance);
COCIBLob(const COCIBLob& src);
~COCIBLob();
COCIBLob& operator = (const COCIBLob& src);
};
class COCIFile : public COCILob
{
protected:
COCIFile(const COCISession& Sess);
COCIFile(const COCISession& Sess, dvoid* instance);
COCIFile(const COCIFile& src);
~COCIFile();
COCIFile& operator = (const COCIFile& src);
public:
void close(void);
void close_all(void);
bool exists(void);
void get_name(void);
bool is_open(void);
void open(ub1 mode = OCI_FILE_READONLY);
void set_name(char* dir_alias, char* filename);
void set_dir_alias(char* dir_alias){strcpy((char*)m_dir_alias, (char*)dir_alias);}
char* get_dir_alias(void){return m_dir_alias;}
void set_filename(char* filename){strcpy((char*)m_filename, (char*)filename);}
char* get_filename(void){return m_filename;}
private:
char m_dir_alias[30];
char m_filename[30];
};
class COCICFile : public COCIFile
{
public:
COCICFile(const COCISession& Sess);
COCICFile(const COCISession& Sess, dvoid* instance);
COCICFile(const COCICFile& src);
~COCICFile();
COCICFile& operator = (const COCICFile& src);
};
class COCIBFile : public COCIFile
{
public:
COCIBFile(const COCISession& Sess);
COCIBFile(const COCISession& Sess, dvoid* instance);
COCIBFile(const COCIBFile& src);
~COCIBFile();
COCIBFile& operator = (const COCIBFile& src);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -