COMPRESS BLOB

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

version 6.5.3 (Modified)


COMPRESS BLOB (blob{; compression})

引数説明
blobBLOB圧縮するBLOB
compression数値省略されない場合:
1, 圧縮率優先で圧縮
2, 速度優先で圧縮

説明

COMPRESS BLOB コマンドは、4D内部の圧縮アルゴリズムを使用して、BLOB blobを圧縮します。このコマンドは、サイズが255バイトを超えるBLOBだけを圧縮します。

オプションのcompression 引数を使用すると、BLOBを圧縮する方法を設定できます:

・1を渡すと、圧縮および解凍の操作の速度と引き換えに、BLOBができるだけ小さく圧縮されます。

・2を渡すと、圧縮率と引き換えに(圧縮されたBLOBのサイズは大きくなります)、BLOBができるだけ速く圧縮されます(展開の速度もできるだけ速くなります)。

・他の値を渡す、または引数を省略すると、圧縮モード1を使用してBLOBができるだけ小さく圧縮します。

4Dは、以下の事前定義定数を提供します:

定数
Compact compression mode倍長整数1
Fast compression mode倍長整数2

呼び出し後、BLOBが圧縮されればOK変数に1が設定されます。メモリ不足やBLOBサイズが255バイト未満などの理由で圧縮が行われなかった場合、OK変数に0が設定されます。エラーは生成されず、メソッドは実行をレジュームします。

(BLOBが壊れているなど) 他のケースの場合、エラー-10600が生成されます。このエラーはON ERR CALL コマンドを使用してとらえることができます。

BLOB圧縮後、EXPAND BLOB コマンドを使用して解凍できます。

BLOBが圧縮されているかどうかを知るには、BLOB PROPERTIES コマンドを使用します。

警告: 圧縮されたBLOBもBLOBであり、そのコンテンツを編集できます。しかしそうしてしまうと、EXPAND BLOB コマンドは正しくBLOBを解凍できなくなります。

例題

1. この例題 はBLOB vxMyBlobが圧縮されているかテストし、されていなければ圧縮します:

   BLOB PROPERTIES (vxMyBlob;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
   If ($vlCompressed=Is not compressed)
      COMPRESS BLOB (vxMyBlob)
   End if

すでに圧縮されているBLOBにCOMPRESS BLOBを適用した場合、コマンドはそれを検知し、何も行いません。


2. この例題は、ドキュメントを選択させ、それを圧縮します:

   $vhDocRef := Open document ("")
   If (OK=1)
      CLOSE DOCUMENT ($vhDocRef)
      DOCUMENT TO BLOB (Document;vxBlob)
      If (OK=1)
         COMPRESS BLOB (vxBlob)
         If (OK=1)
            BLOB TO DOCUMENT (Document;vxBlob)
         End if
      End if
   End if

参照

BLOB PROPERTIES, EXPAND BLOB.

システム変数またはセット

BLOBが圧縮されると、OK変数が1に、そうでなければ0に設定されます。


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