Blobクラスは、BLOB型オブジェクトの共通プロパティを定義します。BLOBは、データベース表の行の列値として格納されるラージ・バイナリ・オブジェクトです。Blobオブジェクトには、BLOBへの論理ポインタが含まれていますが、BLOB自体は含まれていません。
Blobクラスのメソッドを使用すると、Blobオブジェクトに関連する特定のタスクを実行できます。
getBlob()やsetBlob()など、ResultSetクラスとStatementクラスのメソッドによって、SQL BLOBの値にアクセスできます。
NULLのBlobオブジェクトに対する有効なメソッドは、setName()、isNull()およびoperator=()のみです。
未初期化のBlobオブジェクトは、次の方法で初期化できます。
setEmpty()メソッドを実行します。 次に、このBLOBを表に挿入してBLOBを変更すると、SELECT ... FOR UPDATEを使用してその内容を取り出すことができます。write()メソッドによってBLOBは変更されますが、変更されたデータは、トランザクションがコミットされたときにのみ表にフラッシュされます。UPDATEは必要ありません。
初期化したBlobオブジェクトを割り当てます。
| メソッド | 概要 |
|---|---|
|
|
|
|
|
指定した |
|
|
前にオープンした |
|
|
|
|
|
|
|
|
|
|
|
指定した |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2つの |
|
|
2つの |
|
|
|
|
|
|
|
|
|
|
|
特定の |
|
|
|
|
|
バッファをオープンしていない |
|
|
バッファをオープンしている |
Blobクラスのコンストラクタです。
| 構文 | 説明 |
|---|---|
Blob(); |
NULLのBlobオブジェクトを作成します。 |
Blob( const Connection *connectionp); |
未初期化のBlobオブジェクトを構築します。 |
Blob( const Blob &srcBlob); |
Blobオブジェクトのコピーを作成します。 |
| パラメータ | 説明 |
|---|---|
connectionp |
接続ポインタを指定します。 |
srcBlob |
コピー元のBlobオブジェクトを指定します。 |
BLOBを現行のBLOBの最後に追加します。
構文
void append( const Blob &srcBlob);
| パラメータ | 説明 |
|---|---|
srcBlob |
現行のBLOBオブジェクトに追加するBLOBオブジェクトを指定します。 |
BLOBをクローズします。
構文
void close();
BLOBから取得したStreamオブジェクトをクローズします。
構文
void closeStream( Stream *stream);
| パラメータ | 説明 |
|---|---|
stream |
クローズするStreamを指定します。 |
BFILEまたはBLOBの一部またはすべてを現行のBLOBにコピーします。
| 構文 | 説明 |
|---|---|
void copy( const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
BFILEの一部を現行のBLOBにコピーします。 |
void copy( const Blob &srcBlob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
BLOBの一部を現行のBLOBにコピーします。
コピー先の |
| パラメータ | 説明 |
|---|---|
srcBfile |
データのコピー元のBFILEを指定します。 |
srcBlob |
データのコピー元のBLOBを指定します。 |
numBytes |
ソースBFILEまたはソースBLOBからコピーするバイト数を指定します。有効な値は0(ゼロ)以上の数値です。 |
dstOffset |
現行のBLOBに書き込むデータの開始位置を指定します。有効な値は、1以上の数値です。 |
srcOffset |
ソースBFILEまたはソースBLOBから読み取るデータの開始位置を指定します。有効な値は、1以上の数値です。 |
BLOBへの効率的な書込みを実行するための最小データ・サイズを戻します。
構文
unsigned int getChunkSize() const;
指定したLobOptionTypeに対するBLOBのLobOptionValueを戻します。
BLOBが格納されたデータベース列またはパーティションに対して設定されていないオプションの値を取得しようとすると、例外が発生します。
構文
LobOptionValue getOptions( LobOptionType optType);
| パラメータ | 説明 |
|---|---|
optType |
要求されるLobOptionTypeの設定です。これらの設定は、サーバーのラウンドトリップを避けるため、ビット単位のor(|)を使用して結合できます。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。 |
BLOBからStreamオブジェクトを戻します。ストリームがすでにオープンしている場合、別のストリームをBlobオブジェクトでオープンすることはできません。したがって、ユーザーは、Blobオブジェクト操作を実行する前に、ストリームを常にクローズする必要があります。
構文
Stream* getStream( unsigned int offset = 1, unsigned int amount = 0);
| パラメータ | 説明 |
|---|---|
offset |
BLOBから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。 |
amount |
BLOBから読み取るバイトの合計数を指定します。amountが0(ゼロ)の場合は、入力offsetの位置からBLOBの終わりまでのデータがストリーム・モードで読み取られます。 |
Blobオブジェクトが初期化されているかどうかを確認します。Blobオブジェクトが初期化されている場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool isInitialized() const;
BlobオブジェクトがアトミックNULLかどうかをテストします。BlobオブジェクトがアトミックNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool isNull() const;
BLOBがオープンしているかどうかを確認します。BLOBがオープンしている場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool isOpen() const;
BLOBのバイト数を戻します。
構文
unsigned int length() const;
BLOBを読込み/書込みまたは読込み専用モードでオープンします。
構文
void open( LobOpenMode mode = OCCI_LOB_READWRITE);
| パラメータ | 説明 |
|---|---|
mode |
BLOBをオープンするモードを指定します。有効な値は、次のとおりです。
|
現行のBLOBにBLOBを割り当てます。割当て元BLOBは、割当て先BLOBが表に格納されているときにのみ、その割当て先BLOBにコピーされます。
構文
Blob& operator=( const Blob &srcBlob);
| パラメータ | 説明 |
|---|---|
srcBlob |
データのコピー元のBLOBを指定します。 |
2つのBlobオブジェクトを比較して、等しいかどうかを調べます。2つのBlobオブジェクトが同じBLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlobオブジェクトがNULLの場合は、等しいとは判断されません。 2つのBlobオブジェクトが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool operator==( const Blob &srcBlob) const;
| パラメータ | 説明 |
|---|---|
srcBlob |
現行のBLOBと比較するソースBLOBを指定します。 |
2つのBlobオブジェクトを比較して、等しくないかどうかを調べます。2つのBlobオブジェクトが同じBLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlobオブジェクトがNULLの場合は、等しいとは判断されません。2つのBlobオブジェクトが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。
構文
bool operator!=( const Blob &srcBlob) const;
| パラメータ | 説明 |
|---|---|
srcBlob |
現行のBLOBと比較するソースBLOBを指定します。 |
BLOBの一部またはすべてをバッファに読み込みます。実際に読み込まれたバイト数が戻ります。
構文
unsigned int read( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const;
| パラメータ | 説明 |
|---|---|
amt |
読み込むバイト数を指定します。有効な値は、1以上の数値です。 |
buffer |
BLOBデータを読み取るバッファを指定します。有効な値は、amt以上の数値です。 |
buffsize |
BLOBデータを読み取るバッファのサイズを指定します。有効な値は、amt以上の数値です。 |
offset |
BLOBから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。 |
Blobオブジェクトを空に設定します。
| 構文 | 説明 |
|---|---|
void setEmpty(); |
Blobオブジェクトを空に設定します。 |
void setEmpty( const Connection* connectionp); |
Blobオブジェクトを空に設定し、渡されたパラメータへの接続ポインタを初期化します。 |
| パラメータ | 説明 |
|---|---|
connectionp |
BLOBオブジェクトの新しい接続ポインタを指定します。 |
BlobオブジェクトをアトミックNULLに設定します。
構文
void setNull();
特定のLobOptionTypeに対してLobOptionValueを指定します。 BLOBの高度な圧縮、暗号化および重複除外を有効化します。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。
BLOBが格納されたデータベース列またはパーティションに対して設定されていないオプションを設定または設定解除しようとすると、例外が発生します。暗号化されたBLOB列で暗号化をオフにしようとすると、例外が発生します。
構文
void setOptions( LobOptionType optType, LobOptionValue optValue);
| パラメータ | 説明 |
|---|---|
optType |
指定されているLobOptionTypeの設定です。これらの設定は、サーバーのラウンドトリップを避けるため、ビット単位のor(|)を使用して結合できます。 |
optValue |
optTypeパラメータで指定されたLobOptionTypeのLobOptionValue設定です。 |
BLOBを新しく指定した長さに切り捨てます。
構文
void trim( unsigned int newlen);
| パラメータ | 説明 |
|---|---|
newlen |
BLOBの新しい長さを指定します。有効な値は、BLOBの現在の長さ以下の数値です。 |
バッファのデータをBLOBに書き込みます。このメソッドは、BLOBを暗黙的にオープンしてバッファのデータをBLOBにコピーし、BLOBを暗黙的にクローズします。BLOBがすでにオープンしている場合は、かわりにwriteChunk()を使用します。実際に書き込まれたバイト数が戻ります。
構文
unsigned int write( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
| パラメータ | 説明 |
|---|---|
amt |
BLOBに書き込むバイト数を指定します。 |
buffer |
BLOBに書き込むデータが含まれているバッファを指定します。 |
buffsize |
BLOBに書き込むデータが含まれているバッファのサイズを指定します。有効な値は、amt以上の数値です。 |
offset |
BLOBに書き込むデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。 |
バッファのデータを前にオープンしたBLOBに書き込みます。実際に書き込まれたバイト数が戻ります。
構文
unsigned int writeChunk( unsigned int amount, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
| パラメータ | 説明 |
|---|---|
amt |
BLOBに書き込むバイト数を指定します。 |
buffer |
BLOBに書き込むデータが含まれているバッファを指定します。 |
buffsize |
BLOBに書き込むデータが含まれているバッファのサイズを指定します。有効な値は、amt以上の数値です。 |
offset |
BLOBに書き込むデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。 |
リージョンのプライマリBlobのBlobオブジェクトを取得します。
構文
Blob* getPrimary();
プライマリBlob内のリージョンのオフセットを取得します。
構文
oraub8 getPrimaryOffset();
このBlob内のリージョンのオフセットを取得します。
構文
oraub8 getOffset();
リージョンの長さ(バイト数)を取得します。
構文
oraub8 getLength();
格納されているデータの型を取得します。
構文
string getMimetype();