オブジェクトを更新する場合には、その形式を識別する必要があります。 エクステンダーは、更新された画像、音声、ビデオのオブジェクトをソースと同じ形式で保管します。 画像オブジェクトの場合は、更新された画像の形式をイメージ・エクステンダーで変換することができます。 画像の形式を変換する場合には、更新ソースの形式とターゲット・イメージの形式を指定する必要があります。 ターゲット・イメージとは、保管された更新画像です。
変換せずにオブジェクトを更新する場合、ソースの画像、音声、ビデオのオブジェクトの形式を指定します。 たとえば、C アプリケーション・プログラムの次のステートメントでは、更新されるビットマップ (BMP) イメージの内容はサーバー・ファイルにあります。 更新された画像の形式は変換されません。
EXEC SQL UPDATE EMPLOYEE SET PICTURE=CONTENT( PICTURE, '/employee/newimg/ajones.bmp', 'BMP', /*image format*/ '') WHERE NAME='Anita Jones';
形式には、ヌル値か空ストリング、さらにイメージ・エクステンダーの場合には、文字ストリング ASIS が指定できます。 その場合は、エクステンダーがソースを調べてその形式を判別します。
認識可能な形式に対する NULL または ASIS の使用: ヌル値、空ストリング、または ASIS を指定するのは、その形式がエクステンダーにとって認識可能な場合、つまり 表 4 のリストにある形式の場合だけにしてください。 さもないと、エクステンダーはそのオブジェクトを更新できません。
形式変換を行って画像を更新する場合には、ソースとターゲットのイメージ形式を両方とも指定します。 どの変換が可能かについては、表 4 を参照してください。
さらに、追加の変更 (更新する画像に適用する必要がある回転や圧縮など) を識別する変換オプションを指定することができます。 各変換オプションはパラメーターおよび関連する値によって指定します。 パラメーターと指定できる値は 表 5 に示してあります。 複数のパラメーター / 値のペアを指定することによって、更新する画像に対する複数の変更を要求することができます。
次の例では、内容がサーバー・ファイルにある画像が更新されます。 この更新のソースはビットマップ (BMP) 形式です。 その形式は、更新の際 BMP から GIF に変換されます。
EXEC SQL UPDATE EMPLOYEE SET PICTURE=CONTENT( PICTURE, '/employee/newimg/ajones.bmp', 'BMP', /*source format*/ 'GIF', /*target format*/ '') WHERE NAME='Anita Jones';
次の例では、更新時に同じ画像を GIF 形式に変換します。 さらに、画像を更新時に 90 度右回りに回転させます。
EXEC SQL UPDATE EMPLOYEE SET PICTURE=CONTENT( PICTURE, '/employee/newimg/ajones.bmp', 'BMP', /*source format*/ 'GIF', /*target format*/ '-r 1', /* conversion options */ '') WHERE NAME='Anita Jones';