メインコンテンツまでスキップ
バージョン: 20 R7 BETA

BLOB PROPERTIES

BLOB PROPERTIES ( BLOB ; compressed {; expandedSize {; currentSize}} )

引数説明
BlobBlob情報を取得するBLOB
compressedInteger0 = BLOBは圧縮されていない 1 = BLOBは圧縮率優先で圧縮されている 2 = BLOBは速度優先で圧縮されている
expandedSizeInteger非圧縮時のBLOBのサイズ (バイト単位)
currentSizeIntegerBLOBの現在のサイズ (バイト単位)

説明

BLOB PROPERTIESコマンドは、BLOB blobに関する情報を返します。

compressed引数はBLOBが圧縮されたかどうかを示す値を返します。この値をBLOBテーマの以下の定義済定数と比較できます。

定数コメント
Compact compression mode倍長整数1圧縮解凍の処理速度と引き換えに、BLOBをできるだけ小さく圧縮します。デフォルトモード。
Fast compression mode倍長整数2圧縮率と引き換えにBLOBをできるだけ速く圧縮・解凍します (圧縮されたBLOBのサイズは大きくなります)。
GZIP best compression mode倍長整数-1GZIP圧縮で圧縮率を優先します。
GZIP fast compression mode倍長整数-2GZIP圧縮で速度を優先します。
Is not compressed倍長整数0

BLOBの圧縮ステータスにかかわらず、expandedSize引数は、圧縮されていない時のBLOBのサイズを戻します。

currentSize引数は、BLOBの現在のサイズを戻します。BLOBが圧縮されている場合には、通常、expandedSizeより小さいcurrentSizeを取得します。BLOBが圧縮されていない場合には、常に、expandedSizeに等しいcurrentSizeを取得します。

例題 1

COMPRESS BLOBおよびEXPAND BLOBの例を参照。

例題 2

BLOBが圧縮された後、以下のプロジェクトメソッドは圧縮できたメモリ空間の割合を返します:

  // Space saved by compression プロジェクトメソッド
  // Space saved by compression (Pointer {; Pointer } ) -> Long
  // Space saved by compression ( -> BLOB {; -> savedBytes } ) -> Percentage
 
 var $1;$2 : Pointer
 var $0;$vlCompressed;$vlExpandedSize;$vlCurrentSize : Integer
 
 BLOB PROPERTIES($1->;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
 If($vlExpandedSize=0)
    $0:=0
    If(Count parameters>=2)
       $2->:=0
    End if
 Else
    $0:=100-(($vlCurrentSize/$vlExpandedSize)*100)
    If(Count parameters>=2)
       $2->:=$vlExpandedSize-$vlCurrentSize
    End if
 End if

このメソッドがアプリケーションに追加された後は、これを以下のように使用できます:

  // ...
 COMPRESS BLOB(vxBlob)
 $vlPercent:=Space saved by compression(->vxBlob;->vlBlobSize)
 ALERT("The compression saved "+String(vlBlobSize)+" bytes, so "+String($vlPercent;"#0%")+
 " of space.")

参照

COMPRESS BLOB
EXPAND BLOB