13.6 Bfileクラス

Bfileクラスは、BFILE型オブジェクトの共通プロパティを定義します。BFILEとは、Oracleデータベースの外のオペレーティング・システム・ファイルに格納されているラージ・バイナリ・ファイルです。Bfileオブジェクトには、BFILEへの論理ポインタが含まれていますが、BFILE自体は含まれていません。

Bfileクラスのメソッドを使用すると、Bfileオブジェクトに関連する特定のタスクを実行できます。

getBfile()setBfile()など、ResultSetクラスとStatementクラスのメソッドによって、SQL BFILEの値にアクセスできます。

NULLBfileオブジェクトに対する有効なメソッドは、setName()isNull()およびoperator=()のみです。

Bfileオブジェクトは、次の方法で初期化できます。

  • setName()メソッドを実行します。次に、このBFILEを表に挿入してBFILEを変更すると、SELECT...FOR UPDATEを使用してその内容を取り出すことができます。write()メソッドによってBFILEは変更されますが、変更されたデータは、トランザクションがコミットされたときにのみ表にフラッシュされます。INSERT操作は必要ありません。

  • 初期化したBfileオブジェクトを割り当てます。

    関連項目:

    LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の該当する章を参照してください。

表13-7 Bfileメソッドの概要

メソッド 概要

Bfile()

Bfileクラスのコンストラクタです。

close()

オープンしているBFILEをクローズします。

closeStream()

BFILEから取得したストリームをクローズします。

fileExists()

BFILE があるかどうかを確認します。

getDirAlias()

BFILEのディレクトリ・オブジェクトを戻します。

getFileName()

BFILEの名前を戻します。

getStream()

StreamオブジェクトとしてBFILEからデータを戻します。

getUStringDirAlias()

BFILEに関連付けられているディレクトリ・オブジェクトを含むUStringを戻します。

getUStringFileName()

BFILEに関連付けられているファイル名を含むUStringを戻します。

isInitialized()

Bfileオブジェクトが初期化されているかどうかを確認します。

isNull()

BfileオブジェクトがアトミックNULLかどうかをテストします。

isOpen()

BFILE がオープンしているかどうかを確認します。

length()

BFILEのバイト数を戻します。

open()

BFILEを読取り専用アクセスでオープンします。

operator=()

BFILEロケータをBfileオブジェクトに割り当てます。

operator==()

2つのBfileオブジェクトが等しいかどうかを確認します。

operator!=()

2つのBfileオブジェクトが等しくないかどうかを確認します。

operator==()

BFILEの特定部分をバッファに読み取ります。

setName()

BFILEのディレクトリ・オブジェクトとファイル名を設定します。

setNull()

BfileオブジェクトをアトミックNULLに設定します。

13.6.1 Bfile()

Bfileクラスのコンストラクタです。

構文 説明
Bfile();

NULLBfileオブジェクトを作成します。

Bfile(
   const Connection *connectionp);

未初期化のBfileオブジェクトを構築します。

Bfile(
   const Bfile &srcBfile);

Bfileオブジェクトのコピーを作成します。

パラメータ 説明
connectionp

接続ポインタを指定します。

srcBfile

コピー元のBfileオブジェクトを指定します。

13.6.2 close()

前にオープンしたBfileをクローズします。

構文

void close();

13.6.3 closeStream()

Bfileから取得したストリームをクローズします。

構文

void closeStream(
   Stream *stream); 
パラメータ 説明
stream

クローズするストリームを指定します。

13.6.4 fileExists()

BFILEがあるかどうかを確認します。BFILEがある場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool fileExists() const;

13.6.5 getDirAlias()

BFILEに関連付けられているディレクトリ・オブジェクトを含む文字列を戻します。

構文

string getDirAlias() const;

13.6.6 getFileName()

BFILEに関連付けられているファイル名を含む文字列を戻します。

構文

string getFileName() const;

13.6.7 getStream()

BFILEから読み取られたStreamオブジェクトを戻します。ストリームがオープンしている場合、そのBfileオブジェクトで別のストリームをオープンすることはできません。ストリームは、Bfileオブジェクト操作を実行する前にクローズする必要があります。

構文

Stream* getStream(
   unsigned int offset = 1,
   unsigned int amount = 0);
パラメータ 説明
offset

BFILEから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。

amount

BFILEから読み取るバイトの合計数を指定します。amount0 (ゼロ)の場合は、入力offsetの位置からBFILEの終わりまでのデータがストリーム・モードで読み取られます。

13.6.8 getUStringDirAlias()

BFILEに関連付けられているディレクトリ・オブジェクトを含むUStringを戻します。UStringオブジェクトにはUTF16キャラクタ・セットが使用されます。BFILEに関連付けられている環境を、UTF16キャラクタセットに関連付ける必要があります。

構文

UString getUStringDirAlias() const;

13.6.9 getUStringFileName()

BFILEに関連付けられているファイル名を含むUStringを戻します。UStringオブジェクトにはUTF16キャラクタセットが使用されます。BFILEに関連付けられている環境を、UTF16キャラクタセットに関連付ける必要があります。

構文

UString getUStringFileName() const;

13.6.10 isInitialized()

Bfileオブジェクトが初期化されているかどうかを確認します。Bfileオブジェクトが初期化されている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isInitialized() const;

13.6.11 isNull()

BfileオブジェクトがアトミックNULLかどうかをテストします。BfileオブジェクトがアトミックNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

13.6.12 isOpen()

BFILEがオープンしているかどうかを確認します。BFILEは、このBfileオブジェクトのコールでオープンされた場合にかぎり、オープンされているとみなされます。(異なるBfileオブジェクトに対して関連付けることにより、同一ファイルに対してopen()コールを複数回実行することが可能であるため、別のBfileオブジェクトがこのファイルをオープンしていた可能性もあります)。BFILEがオープンしている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isOpen() const;

13.6.13 length()

BFILEのバイト数を(ファイル・マーカーの終了も含めて)戻します。

構文

unsigned int length() const;

13.6.14 open()

既存のBFILEを読取り専用アクセスでオープンします。この関数は、1つのBfileオブジェクトに対して初めてコールされたときに有効となります。

構文

void open();

13.6.15 operator=()

Bfileオブジェクトを現行のBfileオブジェクトに割り当てます。ソースのBfileオブジェクトは、このBfileオブジェクトがデータベースに格納されている場合にのみ、このBfileオブジェクトに割り当てられます。

構文

Bfile& operator=(
   const Bfile &srcBfile);
パラメータ 説明
srcBfile

現行のBfileオブジェクトに割り当てるBfileオブジェクトを指定します。

13.6.16 operator==()

2つのBfileオブジェクトを比較して、等しいかどうかを調べます。2つのBfileオブジェクトが同じBFILEを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBfileオブジェクトがNULLの場合は、FALSEを戻します。2つのBfileオブジェクトが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator==(
   const Bfile &srcBfile) const;
パラメータ 説明
srcBfile

現行のBfileオブジェクトと比較するBfileオブジェクトを指定します。

13.6.17 operator!=()

2つのBfileオブジェクトを比較して、等しくないかどうかを調べます。2つのBfileオブジェクトが同じBFILEを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBfileオブジェクトが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator!=(
   const Bfile &srcBfile) const;
パラメータ 説明
srcBfile

現行のBfileオブジェクトと比較するBfileオブジェクトを指定します。

13.6.18 read()

BFILEの一部またはすべてを指定されたバッファに読み取り、読み取られたバイト数を戻します。

構文

unsigned int read(
   unsigned int amt,
   unsigned char *buffer,
   unsigned int bufsize,
   unsigned int offset = 1) const;
パラメータ 説明
amt

読み取るバイト数を指定します。有効な値は、1以上の数値です。

buffer

BFILEデータを読み取るバッファを指定します。有効な値は、amt以上の数値です。

buffsize

BFILEデータを読み取るバッファのサイズを指定します。有効な値は、amt以上の数値です。

offset

BFILEから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBFILEの最初から書き込まれます。

13.6.19 setName()

BFILEのディレクトリ・オブジェクトとファイル名を設定します。

構文 説明
void setName(
   const string &dirAlias,
   const string &fileName);

BFILEのディレクトリ・オブジェクトとファイル名を設定します。

void setName(
   const UString &dirAlias,
   const UString &fileName);

BFILEのディレクトリ・オブジェクトとファイル名を設定します(Unicodeサポート)。クライアントのEnvironmentをOCCIUTIF16モードで初期化する必要があります。

パラメータ 説明
dirAlias

BFILEに関連付けるディレクトリ・オブジェクトを指定します。

fileName

BFILEに関連付けるファイル名を指定します。

13.6.20 setNull()

BfileオブジェクトをアトミックNULLに設定します。

構文

void setNull();