Bfile类

Bfile类定义了Bfile类型对象的公共属性。BFILE是存储在神通数据库之外的操作系统文件中的大型二进制文件。Bfile对象包含一个指向Bfile的逻辑指针,而不是Bfile本身。

Bfile类的方法使您能够执行与Bfile对象相关的特定任务。

ResultSet和Statement类的方法,如getBfile()和setBfile(),使您能够访问SQL BFILE值。

只有setName()、isNull()和operator=()对NULL Bfile对象有效。

Bfile对象可以通过以下方式初始化:

  • setName()方法。然后可以修改BFILE,将BFILE插入到表中,然后使用SELECT...FOR UPDATE。write()方法修改BFILE;但是,只有在提交事务时,修改的数据才会刷新到表中。注意,插入操作不是必需的。
  • 给它分配一个初始化的Bfile对象。

Bfile()

Bfile类的构造函数。

Blob(const Connection * connectionp,

ACIBlobLocator * locatorp, bool toCopy=true)
语法 描述
Bfile(); 创建一个空Bfile对象。
Bfile(const Connection * connectionp) 创建一个未初始化的Bfile对象。
Bfile (const Bfile &srcBfile); 创建一个Bfile对象的副本。
参数 描述
connectionp connection指针
srcBfile 源Bfile对象

Close

关闭先前打开的Bfile。

语法

void close();

closeStream()

关闭从Bfile获得的流。

语法

void closeStream(

   Stream *stream);

fileExists()

测试BFILE是否存在。如果BFILE存在,则返回TRUE;否则,返回FALSE。

语法

bool fileExists() const;

getDirAlias()

返回一个包含与BFILE关联的目录对象的字符串。

语法

string getDirAlias() const;

getUStringDirAlias()

返回一个包含与BFILE关联的目录对象的字符串。

语法

UString getUStringDirAlias() const;

getFileName()

返回一个字符串,该字符串包含与BFILE关联的文件名。

语法

string getFileName() const;

getUStringFileName()

返回一个字符串,该字符串包含与BFILE关联的文件名。

语法

string getUStringFileName() const;

getStream()

返回从BFILE读取的流对象。如果一个流是打开的,它不允许在Bfile对象上打开另一个流。在执行任何Bfile对象操作之前,流必须被关闭。

语法

Stream* getStream(
   unsigned int offset = 1,
   unsigned int amount = 0);
参数 描述
offset 从BFILE开始读取数据的起始位置。如果未指定偏移量,则 从BLOB的开始写入数据。有效值是大于或等于1的数字。
amounte 从BFILE中读取的字节总数;如果amount为0,则以流模式 从输入偏移量读取数据,直到BFILE结束。

isInitialized()

测试Bfile对象是否已初始化。如果Bfile对象已经初始化,则返回TRUE;否则,返回FALSE。

语法

bool isInitialized() const;

isNull()

测试Bfile对象是否原子为空。如果Bfile对象原子上为空,则返回TRUE;否则,返回FALSE。

语法

bool isNull() const;

isOpen()

测试BFILE是否打开。只有调用这个BFILE对象时,BFILE才被认为是打开的。(不同的Bfile对象可以打开这个文件,因为多个open()调用可以通过关联文件与不同的Bfile对象在同一个文件上执行)。如果BFILE打开,返回TRUE;否则,返回FALSE。

语法

bool isOpen() const;

length()

返回BFILE中的字节数(包括文件结束标记)。

语法

unsigned int length() const;

open()

打开一个现有的BFILE以进行只读访问。这个函数在第一次为Bfile对象调用时是有意义的。

语法

void open();

operator=()

将一个Bfile对象赋给当前Bfile对象。只有当这个Bfile对象存储在数据库中时,源Bfile对象才被分配给这个Bfile对象。

语法

Bfile& operator=(

     const Bfile &srcBfile);
参数 描述
srcBfile 分配给当前Bfile对象的Bfile对象。

operator==()

比较两个Bfile对象是否相等。如果两个Bfile对象都引用同一个Bfile,则Bfile对象相等。如果Bfile对象为空,则返回FALSE。如果Bfile对象相等,则返回TRUE;否则,返回FALSE。

语法

bool operator==(

     const Bfile &srcBfile) const;
参数 描述
srcBfile 要与当前Bfile对象比较的Bfile对象。

operator!=()

比较两个Bfile对象是否相等。如果两个Bfile对象都引用同一个Bfile,则Bfile对象相等。如果Bfile对象不相等,则返回TRUE;否则,返回FALSE。

语法

bool operator!=(

     const Bfile &srcBfile) const;
参数 描述
srcBfile 要与当前Bfile对象比较的Bfile对象。

read()

将BFILE的一部分或全部读入指定的缓冲区,并返回所读取的字节数。

比较两个Bfile对象是否相等。如果两个Bfile对象都引用同一个Bfile,则Bfile对象相等。如果Bfile对象不相等,则返回TRUE;否则,返回FALSE。

语法

unsigned int read(

   unsigned int amt,

   unsigned char *buffer,

   unsigned int bufsize,

   unsigned int offset = 1) const;
参数 描述
amt 要读取的字节数。有效值是大于或等于1的数字。
buffer 要读入BFILE数据的缓冲区。
buffsize 要读入BFILE数据的缓冲区的大小。有效值是大于或等于a mt的数字。
offset 从BFILE开始读取数据的起始位置。如果未指定偏移量, 则从BFILE开始写入数据。

setName()

设置BFILE的目录对象和文件名。(UString为字符集支持)

参数 描述

void setName(

const string &dirAlias

const string &fileName

与BFILE关联的目录对象。

与BFILE关联的文件名

Connection* createConnection(

const UString &dirAlias

const UString &fileName

与BFILE关联的目录对象。

与BFILE关联的文件名

setNull()

将Bfile对象设置为原子NULL。

语法

void setNull();

getLocator()

获取ACIBFileLocator指针

语法

ACIBFileLocator* getLocator() const;