4D v12.4COMPRESS BLOB |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
COMPRESS BLOB
|
COMPRESS BLOB ( BLOB {; compression} ) | ||||||||
引数 | 型 | 説明 | ||||||
BLOB | BLOB |
![]() |
圧縮するBLOB | |||||
compression | 倍長整数 |
![]() |
省略されない場合: 1, 圧縮率優先で圧縮 2, 速度優先で圧縮 | |||||
COMPRESS BLOB コマンドは、4D内部の圧縮アルゴリズムを使用して、BLOB blobを圧縮します。このコマンドは、サイズが255バイトを超えるBLOBだけを圧縮します。
オプションのcompression 引数を使用すると、BLOBを圧縮する方法を設定できます:
4Dは、以下の事前定義定数を提供します:
定数 | 型 | 値 | コメント |
Compact compression mode | 倍長整数 | 1 | 圧縮解凍の処理速度と引き換えに、BLOBをできるだけ小さく圧縮します。デフォルトモード。 |
Fast compression mode | 倍長整数 | 2 | 圧縮率と引き換えにBLOBをできるだけ速く圧縮・解凍します (圧縮されたBLOBのサイズは大きくなります)。 |
呼び出し後、BLOBが圧縮されればOK変数に1が設定されます。メモリ不足やBLOBサイズが255バイト未満などの理由で圧縮が行われなかった場合、OK変数に0が設定されます。エラーは生成されず、メソッドは実行をレジュームします。
(BLOBが壊れているなど) 他のケースの場合、エラー-10600が生成されます。このエラーはON ERR CALL コマンドを使用してとらえることができます。
BLOB圧縮後、EXPAND BLOB コマンドを使用して解凍できます。
BLOBが圧縮されているかどうかを知るには、BLOB PROPERTIES コマンドを使用します。
警告: 圧縮されたBLOBもBLOBであり、そのコンテンツを編集できます。しかしそうしてしまうと、EXPAND BLOB コマンドは正しくBLOBを解凍できなくなります。
この例題 はBLOB vxMyBlobが圧縮されているかテストし、されていなければ圧縮します:
BLOB PROPERTIES(vxMyBlob;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
If($vlCompressed=Is not compressed)
COMPRESS BLOB(vxMyBlob)
End if
すでに圧縮されているBLOBにCOMPRESS BLOBを適用した場合、コマンドはそれを検知し、何も行いません。
この例題は、ドキュメントを選択させ、それを圧縮します:
$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が正しく圧縮されると、システム変数OKは1に設定されます。そうでなければ0に設定されます。
プロダクト: 4D
テーマ: BLOB
番号:
534
変更: 4D v6.5.3
Compression, blob compression***