4D v16

BLOB

ホーム

 
4D v16
BLOB

BLOB    


 

 

ビデオで説明されている操作の他、以下の点についても留意してください:

BLOBについてよく聞かれる質問があります:

  • これは何をするためのもので、どのような場合に使用すればよいのでしょうか
  • BLOBになんでも入れられることは分かりました。でもどうやって?またどうやって取り出せばよいのでしょうか

まず2つ目の質問に取り組んでみましょう:

BLOBでは任意のバイトにアクセスできますが、ほとんどのケースでFIFO (First In First Out) と呼ばれる手法を採用することになります。つまりBLOBに入れた順番にBLOBからデータを取り出すのです。

例えば以下のようになります:
  • 倍長整数 4 byte
  • 日付 6 byte
  • テキスト (内容やフォーマットにより可変)

これらのデータを読み出すには、この順番通りにおこないます。つまり最初に倍長整数を読み出します。データを受け取る変数の型は、読み出された値の型に対応していなければなりません。

一番目の問い (BLOBの目的) への答えは以下の通りです:

  • 変数やリスト、配列を格納する
  • クライアントサーバー間でドキュメントを転送する
  • BLOBを暗号化することで内容を保護する
  • 変数の内容を保存する
  • Webサーバーからピクチャー、テキスト、ドキュメントなど任意のタイプのレスポンスを返信する
  • など

VARIABLE TO BLOBコマンドは4Dの内部的なフォーマットでデータをBLOBに格納します。このときデータに関する情報が付加されるため、BLOBのサイズはデータの実サイズよりも多く増大します。このコマンドの利点は4D内部でBLOBを使用する限り、バイトスワップを気にする必要がないということです。

BLOBに値を格納する際、BLOBのアドレスを指定する代わりに * 引数を指定すると、4Dは自動でBLOBの最後にデータを追加します。

例としてデータベースの環境設定を保存し、読み込むケースを考えてみましょう:
  • 初期画面
  • 背景色
  • 文字フォント名とサイズ
  • など
    これらは環境設定として、ユーザーが変更することも可能です。

これらを保存するため複数の方法が考えられます (テーブルレコード、テキストファイル、XML等)。

もちろんBLOBを使用することもできます。BLOBをディスクファイルに読み書きするにはBLOB TO DOCUMENTDOCUMENT TO BLOBコマンドを使用します。

転送時間を削減するため、BLOBを圧縮することもできます。ただし4Dのコマンドでは255 byteより大きなBLOBしか圧縮されない点に留意してください。

BLOBを解凍する際、その前にBLOBが圧縮されたものかどうかを確認してください。圧縮されていないBLOBを解凍しようとするとエラーになります。

In this video, we're going to learn how to program BLOBs and see how they interact with variables.

BLOBs allow you to store and retrieve all kinds of information.

Let’s use a simple example, say, storing variables. First let's create a method and then we are going to:

  • assign values to three input variables, and three output variables
  • initialize the BLOB and the reading position in the BLOB
  • assign values to the variables
  • and transfer these variables to the BLOB.

The principle is to:

  • use the VARIABLE TO BLOB command
  • indicate the variable to process
  • the BLOB where you want to store it
  • and the position where you want to store the variable in the BLOB.

The PositionInBlob variable works as both an input and output variable, in other words:

  • It indicates where you want to store the variable beforehand
  • And after the command has been executed, this variable contains the position in the BLOB just after the variable so that you can then store the following elements.
  • Once the data is stored in the BLOB, we can do a series of processing and then extract data from the BLOB by writing this:
    We redefine the starting point in the BLOB to position 0.
    We're going to extract from the BLOB the first variable that was entered.
  • Then the 2nd and the 3rd.
  • Normally, when we have finished using a BLOB, we can erase it by setting its size to 0.

We're going to trace this method to see how it fills the BLOB and how it restores the variables.

At this point:

  • All the initializations have been done.
  • The BLOB is empty.
  • When we move to the 1st row, the BLOB contains a certain number of bytes.
  • And gradually it is filled.

To extract data from the BLOB:

  • We go back to position 0 in the BLOB.
  • Then we extract the integer value
  • The date
  • And the text that were stored.
  • Then we empty the BLOB.

This simple example helps us understand the entry and removal of data in a BLOB.

We could store results from statistical arrays in a BLOB so that we can use them again later on.
So we will:

  • Create a BLOB button
    (usually you have to go put it in the XLIFF file)
  • And in this button, we'll create a BLOB
  • And transfer the 2 arrays.

Later, when we want to retrieve the contents of the arrays, we'll need to program this as follows:

  • Initializing the first array
  • Then the other one
  • Setting the position in the BLOB
  • Retrieving both arrays from the BLOB.

During execution:

  • Our arrays contain 7 elements,
  • The BLOB is empty
  • We load the BLOB with the information from the arrays.

Then when we want to retrieve the BLOB contents later on:

  • We start with 2 empty arrays
  • We go to the beginning of the BLOB
  • Then we reload the arrays (Technicians and then Interventions)

 
 

 
プロパティ 

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

 
履歴 

 
ARTICLE USAGE

セルフトレーニング ( 4D v16)