version 6.0
BLOB PROPERTIES (blob; compressed{; expandedSize{; currentSize}})
| 引数 | 型 | 説明 | |
| blob | BLOB | 情報を取得するBLOB | |
| compressed | 数値 | 0 = BLOBは圧縮されていない | |
| 1 = BLOBは圧縮率優先で圧縮されている | |||
| 2 = BLOBは速度優先で圧縮されている | |||
| expandedSize | 数値 | 非圧縮時のBLOBのサイズ (バイト単位) | |
| currentSize | 数値 | BLOBの現在のサイズ (バイト単位) |
説明
BLOB PROPERTIES コマンドは、BLOB blobに関する情報を返します。
・compressed引数はBLOBが圧縮されたかどうかを示し、以下の定義済定数の1つを返します。
| 定数 | 型 | 値 |
| Is not compressed | 倍長整数 | 0 |
| Compact compression mode | 倍長整数 | 1 |
| Fast compression mode | 倍長整数 | 2 |
・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
C_POINTER ($1;$2)
C_LONGINT ($0;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
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.")
参照