Tips

ピクチャに収納されたBLOBの取り扱いについて

日付2008/12/01
ID08-075
バージョン11.2
プラットフォームMac / Win

4D v11 SQL Release 2では、BLOB TO PICTUREコマンドが拡張され、任意の第3引数 codec が利用できるようになりました。この引数を使用すれば、BLOBをデコードする際のコーデックが文字列で指定できます。4Dが認識する画像コーデックを渡した場合、そればBLOBの変換に適用されます。

4Dが認識しないコーデックを渡した場合、渡された識別子は新たなコーデックとして動的に登録され、4DはBLOBをカプセル化したピクチャを返してOKシステム変数に1を代入します。BLOBを取り出すには、変換したときと同じ識別子をPICTURE TO BLOBコマンドに渡す必要があります。

この実装は、ピクチャ配列によりBLOBの配列を管理するために考案されました。配列は全体としてメモリに置かれるので注意が必要です。とりわけサイズの大きなBLOBの配列はアプリケーションの動作に悪影響を及ぼす恐れがあります。

VARIABLE TO BLOBコマンドで作成されたBLOBは自動的に管理されるので、そのようなBLOBをPICTUREに変換するとき、BLOB TO PICTUREコマンドにコーデックを渡す必要はありません。VARIABLE TO BLOBコマンドで作成されたBLOBには署名が付いているからです。そのようなBLOBをBLOB TO PICTUREコマンドでピクチャに変換した場合、元のBLOBに戻すには、PICTURE TO BLOBコマンドに".4DVarBlob"をコーデックとして渡します。

VARIABLE TO BLOBコマンド以外にも、自動的にBLOBに署名が付される場合があります。SQL SELECTステートメントにより、ピクチャの配列に収めたBLOBを取り出すには、PICTURE TO BLOBコマンドに".4DBlob"コーデックを渡して下さい。