13.7 Blobクラス
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オブジェクトを割り当てます。 
関連項目:
- 
                           
LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください
 
表13-8 Blobメソッドの概要
| メソッド | 概要 | 
|---|---|
| 
                               
  | 
                        |
| 
                               指定した  | 
                        |
| 
                               前にオープンした  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               指定した  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               2つの  | 
                        |
| 
                               2つの  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               
  | 
                        |
| 
                               特定の  | 
                        |
| 
                               
  | 
                        |
| 
                               バッファをオープンされていない  | 
                        |
| 
                               バッファをオープンされている  | 
                        
13.7.1 Blob()
Blobクラスのコンストラクタです。
                     
| 構文 | 説明 | 
|---|---|
Blob();  | 
                              
                                  
  | 
                           
Blob( const Connection *connectionp);  | 
                              
                                  未初期化の  | 
                           
Blob( const Blob &srcBlob);  | 
                              
                                  
  | 
                           
| パラメータ | 説明 | 
|---|---|
connectionp  | 
                              
                                  接続ポインタを指定します。  | 
                           
srcBlob  | 
                              
                                  コピー元の  | 
                           
13.7.2 append()
BLOBを現行のBLOBの最後に追加します。
                     
構文
void append( const Blob &srcBlob);
| パラメータ | 説明 | 
|---|---|
srcBlob  | 
                              
                                  現行の  | 
                           
13.7.4 closeStream()
BLOBから取得したStreamオブジェクトをクローズします。
                     
構文
void closeStream( Stream *stream);
| パラメータ | 説明 | 
|---|---|
stream  | 
                              
                                  クローズする  | 
                           
13.7.5 copy()
BFILEまたはBLOBの一部またはすべてを現行のBLOBにコピーします。
                     
| 構文 | 説明 | 
|---|---|
void copy( const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1);  | 
                              
                                  
  | 
                           
void copy( const Blob &srcBlob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1);  | 
                              
                                  
 コピー先の  | 
                           
| パラメータ | 説明 | 
|---|---|
srcBfile  | 
                              
                                  データのコピー元の  | 
                           
srcBlob  | 
                              
                                  データのコピー元の  | 
                           
numBytes  | 
                              
                                  ソース  | 
                           
dstOffset  | 
                              
                                  現行の  | 
                           
srcOffset  | 
                              
                                  ソース  | 
                           
13.7.7 getContentType()
Blobのコンテンツ・タイプを戻します。コンテンツ・タイプが割り当てられていない場合は、NULL文字列を戻します。
                     
構文
string getContentType();
13.7.9 getStream()
BLOBからStreamオブジェクトを戻します。ストリームがオープンしている場合、別のストリームをBlobオブジェクトでオープンすることはできません。したがって、ユーザーは、Blobオブジェクト操作を実行する前に、ストリームを常にクローズする必要があります。
                     
構文
Stream* getStream( unsigned int offset = 1, unsigned int amount = 0);
| パラメータ | 説明 | 
|---|---|
offset  | 
                              
                                  
  | 
                           
amount  | 
                              
                                  
  | 
                           
13.7.10 isInitialized()
Blobオブジェクトが初期化されているかどうかを確認します。Blobオブジェクトが初期化されている場合はTRUEを、それ以外の場合はFALSEを戻します。
                     
構文
bool isInitialized() const;
13.7.11 isNull()
BlobオブジェクトがアトミックNULLかどうかをテストします。BlobオブジェクトがアトミックNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。 
                     
構文
bool isNull() const;
13.7.12 isOpen()
BLOBがオープンしているかどうかを確認します。BLOBがオープンしている場合はTRUEを、それ以外の場合はFALSEを戻します。
                     
構文
bool isOpen() const;
13.7.14 open()
BLOBを読取り/書込みまたは読取り専用モードでオープンします。
                     
構文
void open( LobOpenMode mode = OCCI_LOB_READWRITE);
| パラメータ | 説明 | 
|---|---|
mode  | 
                              
                                  
 
  | 
                           
13.7.15 operator=()
現行のBLOBにBLOBを割り当てます。割当て元BLOBは、割当て先BLOBが表に格納されているときにのみ、その割当て先BLOBにコピーされます。
                     
構文
Blob& operator=( const Blob &srcBlob);
| パラメータ | 説明 | 
|---|---|
srcBlob  | 
                              
                                  データのコピー元の  | 
                           
13.7.16 operator==()
2つのBlobオブジェクトを比較して、等しいかどうかを調べます。2つのBlobオブジェクトが同じBLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlobオブジェクトがNULLの場合は、等しいとは判断されません。Blobオブジェクトが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。
                     
構文
bool operator==( const Blob &srcBlob) const;
| パラメータ | 説明 | 
|---|---|
srcBlob  | 
                              
                                  現行の  | 
                           
13.7.17 operator!= ()
2つのBlobオブジェクトを比較して、等しくないかどうかを調べます。2つのBlobオブジェクトが同じBLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlobオブジェクトがNULLの場合は、等しいとは判断されません。2つのBlobオブジェクトが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。
                     
構文
bool operator!=( const Blob &srcBlob) const;
| パラメータ | 説明 | 
|---|---|
srcBlob  | 
                              
                                  現行の  | 
                           
13.7.18 read()
BLOBの一部またはすべてをバッファに読み取ります。実際に読み取られたバイト数が戻ります。
                     
構文
unsigned int read( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const;
| パラメータ | 説明 | 
|---|---|
amt  | 
                              
                                  読み取るバイト数を指定します。有効な値は、  | 
                           
buffer  | 
                              
                                  
  | 
                           
buffsize  | 
                              
                                  
  | 
                           
offset  | 
                              
                                  
  | 
                           
13.7.19 setContentType()
Blobのコンテンツ・タイプを設定します。BlobがSecureFileでない場合は、例外が発生します。
                     
構文
void setContentType( const string contenttype);
| パラメータ | 説明 | 
|---|---|
contenttype  | 
                              
                                  
  | 
                           
13.7.20 setEmpty()
Blobオブジェクトを空に設定します。
                     
| 構文 | 説明 | 
|---|---|
void setEmpty();  | 
                              
                                  
  | 
                           
void setEmpty( const Connection* connectionp);  | 
                              
                                  
  | 
                           
| パラメータ | 説明 | 
|---|---|
connectionp  | 
                              
                                  
  | 
                           
13.7.22 setOptions()
特定のLobOptionTypeに対してLobOptionValueを指定します。BLOBの高度な圧縮、暗号化および重複除外を有効化します。表7-1と表7-2を参照してください。
                     
BLOBが格納されたデータベース列またはパーティションに対して設定されていないオプションを設定または設定解除しようとすると、例外が発生します。 
                     
暗号化されたBLOB列で暗号化をオフにしようとすると、例外が発生します。
                     
構文
void setOptions( LobOptionType optType, LobOptionValue optValue);
| パラメータ | 説明 | 
|---|---|
optType  | 
                              
                                  指定されている  | 
                           
optValue  | 
                              
                                  
  | 
                           
13.7.23 trim()
BLOBを新しく指定した長さに切り捨てます。
                     
構文
void trim( unsigned int newlen);
| パラメータ | 説明 | 
|---|---|
newlen  | 
                              
                                  
  | 
                           
13.7.24 write()
バッファのデータをBLOBに書き込みます。このメソッドは、BLOBを暗黙的にオープンしてバッファのデータをBLOBにコピーし、BLOBを暗黙的にクローズします。BLOBがオープンしている場合は、かわりにwriteChunk()を使用します。実際に書き込まれたバイト数が戻されます。
                     
構文
unsigned int write( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
| パラメータ | 説明 | 
|---|---|
amt  | 
                              
                                  
  | 
                           
buffer  | 
                              
                                  
  | 
                           
buffsize  | 
                              
                                  
  | 
                           
offset  | 
                              
                                  
  | 
                           
13.7.25 writeChunk()
バッファのデータを前にオープンしたBLOBに書き込みます。実際に書き込まれたバイト数が戻されます。
                     
構文
unsigned int writeChunk( unsigned int amount, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
| パラメータ | 説明 | 
|---|---|
amt  | 
                              
                                  
  | 
                           
buffer  | 
                              
                                  
  | 
                           
buffsize  | 
                              
                                  
  | 
                           
offset  | 
                              
                                  
  |