4D v16.3

BLOBコマンド

ホーム

 
4D v16.3
BLOBコマンド

BLOBコマンド  


 

定義  

4Dは、BLOB(Binary Large OBjects)データタイプをサポートします。

BLOBフィールド、BLOB変数およびBLOB配列は、以下のように定義できます。

  • BLOBフィールドを作成するには、インスペクターウィンドウ内のフィールドタイプドロップダウンリストでBLOBを選択します。
  • BLOB変数を作成するには、コンパイラー宣言コマンドC_BLOBを使用します。BLOB型のローカル、プロセス、インタープロセス変数を作成できます。
  • BLOB配列を作成するには、ARRAY BLOBコマンドを使用します。
4Dの中で、BLOBは連続した可変長バイトであり、1つのまとまったオブジェクトまたは各バイトが個々にアドレス指定できるオブジェクトとして取 り扱うことができます。BLOBは空(長さがNULL)でもよく、また最大2,147,483,647バイト(2GB)まで含むことができます。

BLOBは全体がメモリにロードされます。BLOB変数とBLOB配列はメモリ内にだけ保持され、存在します。BLOBフィールドは、そのフィールドが属するレコードの他の部分と同様に、ディスクからメモリにロードされます。

大量のデータを保持できる他のフィールドタイプ(ピクチャーフィールド型)と同様に、レコードを更新してもBLOBフィールドはメモリに複製されません。その結 果、OldおよびModifiedコマンドをBLOBフィールドに適用しても、返される結果は意味を持ちません。

BLOBには、どのような種類のデータでも保持できるため、画面上でのデフォルトの表現はありません。フォーム内でBLOBフィールドまたは変数を表示すると、どのような内容であっても常に空白になります。

BLOBフィールドを使用すると、最大で2GBまでのあらゆる種類のデータを保存できます。BLOBフィールドにインデックス付けすることはできないため、BLOBフィールドに保存された値のレコードを検索するには、式を使用しなければなりません。

4DのBLOBは、4Dコマンドまたは4Dプラグインの引数として渡すことができます。BLOBをユーザーメソッドのパラメーターとして渡したり、関数の戻り値にすることもできます。

ポインターを使用して、BLOBをメソッドに渡すことも出来ます。BLOBへのポインターを定義し、ポインターをパラメーターとして渡します。

例題:

  ` BLOBタイプの変数を定義
 C_BLOB(anyBlobVar)
  ` 4DコマンドにBLOBを引数として渡す
 SET BLOB SIZE(anyBlobVar;1024*1024)
  ` プラグインにBLOBを引数で渡す
 $errCode:=Do Something With This BLOB(anyBlobVar)
  ` BLOBを引数として渡し、戻り値をBLOBで受け取る。
 C_BLOB(retrieveBlob)
 retrieveBlob:=Fill_Blob(anyBlobVar)
  ` BLOBのポインターをメソッドに渡す。
 COMPUTE BLOB(->anyBlobVar)

プラグイン開発者への注意: BLOB引数は“&O”(数字の0ではなく、アルファベットの"O")として宣言されます。

代入  

BLOBを相互に代入できます.

例題:

  ` 2つのBLOB変数を定義
 C_BLOB(vBlobA;vBlobB)
  ` BLOBに10KBを割り当てる
 SET BLOB SIZE(vBlobA;10*1024)
  ` 最初のBLOBを2つめのBLOBに代入
 vBlobB:=vBlobA

ただし、BLOBに演算子を適用することはできません。BLOBタイプの式はありません。

中カッコ{...}を使用し、BLOBの各バイトを個別にアドレス指定できます。BLOB内では、各バイトに0 から N-1の番号が割り当てられています。NはBLOBのサイズです。例えば:

  ` BLOBを定義する
 C_BLOB(vBlob)
  ` BLOBのサイズを256バイトに設定する
 SET BLOB SIZE(vBlob;256)
  ` 次のループは、256バイトをゼロに初期化する
 For(vByte;0;BLOB size(vBlob)-1)
    vBlob{vByte}:=0
 End for

BLOBの各バイトはすべて個別にアドレス指定できるため、BLOBフィールドまたは変数に格納したいものは実際何でも格納できます。

4DはBLOBに使用する以下のコマンドを提供します:

これらのコマンドについては、この章で説明しています。

追記:



参照 

APPEND DATA TO PASTEBOARD
BLOB TO PICTURE
BLOB TO USERS
C_BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
GET PASTEBOARD DATA
GET RESOURCE
PICTURE TO BLOB
PICTURE TO GIF
USERS TO BLOB
WEB SEND BLOB

 
プロパティ 

プロダクト: 4D
テーマ: BLOB

 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)