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
から取得した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
のコンテンツ・タイプを戻します。コンテンツ・タイプが割り当てられていない場合は、NULL
文字列を戻します。
構文
string getContentType();
指定した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
を読取り/書込みまたは読取り専用モードでオープンします。
構文
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
の場合は、等しいとは判断されません。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
のコンテンツ・タイプを設定します。Blob
がSecureFileでない場合は、例外が発生します。
構文
void setContentType( const string contenttype);
パラメータ | 説明 |
---|---|
contenttype |
Blob のコンテンツ・タイプを指定します。ASCII Mime対応の文字列です。 |
Blob
オブジェクトを空に設定します。
構文 | 説明 |
---|---|
void setEmpty(); |
Blob オブジェクトを空に設定します。 |
void setEmpty( const Connection* connectionp); |
Blob オブジェクトを空に設定し、渡されたパラメータへの接続ポインタを初期化します。 |
パラメータ | 説明 |
---|---|
connectionp |
BLOB オブジェクトの新しい接続ポインタを指定します。 |
特定の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 以上の数値です。 |