4D環境にクラスが導入されたことで、データをオブジェクト、特にblobに格納する必要性が高まりました。そのため、4D v19 R2では、Blobをオブジェクトにカプセル化することができます。
ストレージの面だけでなく、ブロブオブジェクトは参照型なので、メモリの占有率やスピードなどのパフォーマンスが大幅に改善されます。
数値やテキストなどの型と同じように、オブジェクトの属性としてblobを割り当てることができるようになりました。
$o:=New object("blob";$blob)
または暗黙の変換で指定できます。
$o:=New object
$o .blob:=。$blob
または共有オブジェクトを使用します。
$sObj:=New shared object("blob";$blob)
多くの場合、Blob型ではなく、Blobオブジェクト(4D.Blob型)を使用したほうがよいでしょう。例えば、メソッドやコマンドのパラメータでblobオブジェクトを渡す場合、Blob型のように複製されず、他の4Dオブジェクトと同じように参照渡しされます。これは、より速く、より少ないメモリ消費量です。
var $blobObj :Object
// Download your MIME in a blob object
$blobObj :=IMAP_transporter.getMIMEAsBlob ($msgID )
// The BLOB object is then passed to the AddToArchives method by reference.
AddToArchives (
$blobObj)
// Unlike when you pass a Blob type, the blob is not duplicated when handled using a blob object.
しかし、標準のBlob型は非推奨ではありません。それぞれのBlobタイプには利点があります。次の表を使って、どれが自分のニーズに合っているかを判断してください。
Blob | 4D.Blob(ブロブ | |
---|---|---|
変更可能 | あり | 不可 |
オブジェクトやコレクションで共有可能 | 不可 | 可 |
参照渡し*。 | No | 可 |
バイトアクセス時の性能 | + | – |
最大サイズ | 2GB | メモリ |
*このサイズ制限は、お使いのOSや空き容量によって低くなる場合があります。
この新しい属性タイプの詳細については、ドキュメントをチェックしてください
Blobがオブジェクトで管理されるようになったので、ORDAで管理するためのステップはあと1つだけです。ご期待ください。