4D v12.1ではSQLを使用したデータベースからのデータ書き出しメカニズムが拡張され、開発者は書き出すデータのタイプに基づき、より詳細な設定を行うことができるようになりました:
SQL EXPORT DATABASEとSQL EXPORT SELECTIONコマンドは追加のオプション引数fieldLimitSizeを受け入れます。この引数はデータベースがBlob、ピクチャー、およびテキスト型のフィールドを含む場合にのみ効果があります。
この引数にはBlob、ピクチャー、およびテキスト (レコードの外に格納されたテキスト) 型のフィールドデータを書き出す際、データをBLOBサブフォルダーではなくメインの"Export.SQL"ファイル内に組み込んで書き出すよう指示するための、サイズの敷値をバイト単位で渡します。
この引数を使用して、書き出し中に生成される外部ファイルの量を制御し、処理の時間を短縮することができます。これは特に、データベースに大量のBlob、ピクチャー、およびテキスト型のフィールドがあり、そこにはある一定サイズのデータしか格納されていない場合に効果があります。
データが"Export.SQL"ファイルに書き出されると、バイナリーデータ (BLOBやピクチャー型) は16進フォーマットで格納されます。このデータを解釈するために、4D SQLエンジンはこの記法をサポートするようになりました (後述)。
4D SQLエンジンは16進記法のリテラル値 (literal) をサポートするようになりました。16進値は数字 (0 - 9) や文字 (A - F) で構成され、すべてのデータタイプをバイトとして表現できます。1バイトは常に2つの16進値で決定されます。
SQLコマンドではこの記法を使用することを示すために、標準のSQLシンタックスを使用します:
X'<16進値>'
例えば10進値が15の場合、X'0f'と書きます。空の値 (ゼロバイト) はX''と書きます。
注: この動作はSQL EXPORT DATABASEとSQL EXPORT SELECTIONコマンドの新しい引数をサポートするために追加されました。書き出しファイルに組み込まれたバイナリーデータは16進記法で格納されます。