13.6 Bfileクラス
Bfileクラスは、BFILE型オブジェクトの共通プロパティを定義します。BFILEとは、Oracleデータベースの外のオペレーティング・システム・ファイルに格納されているラージ・バイナリ・ファイルです。Bfileオブジェクトには、BFILEへの論理ポインタが含まれていますが、BFILE自体は含まれていません。
Bfileクラスのメソッドを使用すると、Bfileオブジェクトに関連する特定のタスクを実行できます。
getBfile()やsetBfile()など、ResultSetクラスとStatementクラスのメソッドによって、SQL BFILEの値にアクセスできます。
NULLのBfileオブジェクトに対する有効なメソッドは、setName()、isNull()およびoperator=()のみです。
Bfileオブジェクトは、次の方法で初期化できます。
-
setName()メソッドを実行します。次に、この
BFILEを表に挿入してBFILEを変更すると、SELECT...FOR UPDATEを使用してその内容を取り出すことができます。write()メソッドによってBFILEは変更されますが、変更されたデータは、トランザクションがコミットされたときにのみ表にフラッシュされます。INSERT操作は必要ありません。 -
初期化した
Bfileオブジェクトを割り当てます。関連項目:
LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の該当する章を参照してください。
表13-7 Bfileメソッドの概要
| メソッド | 概要 |
|---|---|
|
|
|
|
オープンしている |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2つの |
|
|
2つの |
|
|
|
|
|
|
|
|
|
13.6.1 Bfile()
Bfileクラスのコンストラクタです。
| 構文 | 説明 |
|---|---|
Bfile(); |
|
Bfile( const Connection *connectionp); |
未初期化の |
Bfile( const Bfile &srcBfile); |
|
| パラメータ | 説明 |
|---|---|
connectionp |
接続ポインタを指定します。 |
srcBfile |
コピー元の |
13.6.3 closeStream()
Bfileから取得したストリームをクローズします。
構文
void closeStream( Stream *stream);
| パラメータ | 説明 |
|---|---|
stream |
クローズするストリームを指定します。 |
13.6.4 fileExists()
BFILEがあるかどうかを確認します。BFILEがある場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool fileExists() const;
13.6.7 getStream()
BFILEから読み取られたStreamオブジェクトを戻します。ストリームがオープンしている場合、そのBfileオブジェクトで別のストリームをオープンすることはできません。ストリームは、Bfileオブジェクト操作を実行する前にクローズする必要があります。
構文
Stream* getStream( unsigned int offset = 1, unsigned int amount = 0);
| パラメータ | 説明 |
|---|---|
offset |
|
amount |
|
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.14 open()
既存のBFILEを読取り専用アクセスでオープンします。この関数は、1つのBfileオブジェクトに対して初めてコールされたときに有効となります。
構文
void open();
13.6.15 operator=()
Bfileオブジェクトを現行のBfileオブジェクトに割り当てます。ソースのBfileオブジェクトは、このBfileオブジェクトがデータベースに格納されている場合にのみ、このBfileオブジェクトに割り当てられます。
構文
Bfile& operator=( const Bfile &srcBfile);
| パラメータ | 説明 |
|---|---|
srcBfile |
現行の |
13.6.16 operator==()
2つのBfileオブジェクトを比較して、等しいかどうかを調べます。2つのBfileオブジェクトが同じBFILEを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBfileオブジェクトがNULLの場合は、FALSEを戻します。2つのBfileオブジェクトが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool operator==( const Bfile &srcBfile) const;
| パラメータ | 説明 |
|---|---|
srcBfile |
現行の |
13.6.17 operator!=()
2つのBfileオブジェクトを比較して、等しくないかどうかを調べます。2つのBfileオブジェクトが同じBFILEを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBfileオブジェクトが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool operator!=( const Bfile &srcBfile) const;
| パラメータ | 説明 |
|---|---|
srcBfile |
現行の |
13.6.18 read()
BFILEの一部またはすべてを指定されたバッファに読み取り、読み取られたバイト数を戻します。
構文
unsigned int read( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const;
| パラメータ | 説明 |
|---|---|
amt |
読み取るバイト数を指定します。有効な値は、 |
buffer |
|
buffsize |
|
offset |
|
13.6.19 setName()
BFILEのディレクトリ・オブジェクトとファイル名を設定します。
| 構文 | 説明 |
|---|---|
void setName( const string &dirAlias, const string &fileName); |
|
void setName( const UString &dirAlias, const UString &fileName); |
|
| パラメータ | 説明 |
|---|---|
dirAlias |
|
fileName |
|