BLOB コマンド

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 2004 (Modified)


定義

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

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

・BLOBフィールドを作成するには、インスペクタウィンドウ内のフィールドタイプドロップダウンリストでBLOBを選択します。

・BLOB変数を作成するには、コンパイラ宣言コマンドC_BLOBコマンドを使用します。BLOB型のローカル、プロセス、インタープロセス変数を作成できます。

Note: BLOBの配列はありません。

4Dの中で、BLOBは連続した可変長バイトであり、1つのまとまったオブジェクトまたは各バイトが個々にアドレス指定できるオブジェクトとして取り扱うことができます。BLOBは空(長さがNULL)でもよく、また最大2,147,483,647バイト(2GB)まで含むことができます。

BLOBとメモリ

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

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

BLOBの表示

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の各バイトを個別にアドレス指定できます。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フィールドまたは変数に格納したいものは実際何でも格納できます。

BLOBと4Dコマンド

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

SET BLOB SIZEは、BLOBフィールドや変数のサイズを変更します。

BLOB sizeは、BLOBのサイズを戻します。

DOCUMENT TO BLOBおよびBLOB TO DOCUMENTを使用すると、ドキュメント全体をBLOBからロード、またはBLOBに書き込むことができます(またMacintosh上では、データフォークおよびリソースフォークを選択できます)。

VARIABLE TO BLOBおよびBLOB TO VARIABLEコマンドを使用すると、LIST TO BLOBおよびBLOB to listと同様、4D変数をBLOBに格納、または取り出すことができます。

COMPRESS BLOB, EXPAND BLOB そして BLOB PROPERTIESを使用すると、圧縮されたBLOBを操作できます。

BLOB to integer, BLOB to longint, BLOB to real, BLOB to text, INTEGER TO BLOB, LONGINT TO BLOB, REAL TO BLOB そして TEXT TO BLOBコマンドを使用すると、ディスク、リソース、OS等から入力される構造化されたデータを操作できます。

DELETE FROM BLOB, INSERT IN BLOB そして COPY BLOBを使用すると、BLOB内にある大きいサイズのデータのまとまりをすばやく処理することができます。

ENCRYPT BLOBDECRYPT BLOBにより4Dデータベース上のデータの暗号化と解読ができます。

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

追記:

C_BLOBはタイプがBLOBの変数を宣言します。詳細はコンパイラコマンドの章を参照してください。

GET CLIPBOARDおよびAPPEND TO CLIPBOARDを使用すると、ペーストボードに格納されているどのデータタイプでも操作できます。詳細はペーストボードの管理の節を参照してください。

GET RESOURCEおよびSET RESOURCEを使用すると、ディスク上に格納されているリソースを操作できます。詳細はリソースの章を参照してください。

SEND HTML BLOBはウェブブラウザ上にどのようなタイプのデータでも送ることができます。詳細はWebサーバの章を参照してください。

PICTURE TO BLOB, BLOB TO PICTURE そして PICTURE TO GIFにより画像を開いたり、変換することができます。詳細はピクチャの章を参照してください。

GENERATE ENCRYPTION KEYPAIRGENERATE CERTIFICATE REQUESTは、SSL (Secured Socket Layer) セキュア接続プロトコルで使用されるコマンドです。詳細はセキュアプロトコルの章を参照してください。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次