画像やビデオのオブジェクト用に保管されたサムネール・サイズを更新するには (または、保管された画像やビデオに対応するサムネール・サイズがない場合、それを追加するには)、Thumbnail UDF を使用します。 Thumbnail UDF を使用する場合には、更新されるサムネール・サイズのオブジェクトのハンドルと、更新される (または新規の) サムネール・サイズの内容を指定します。
サムネール・サイズは、プログラムの中で生成してください。 エクステンダーには、サムネール・サイズを生成する API はありません。 更新するサムネール・サイズの大きさと形式はユーザーが制御します。 サムネール・サイズの構造体をプログラムの中に作成し、その構造体を UDF に指定してください。
たとえば、C アプリケーション・プログラムの次のステートメントでは、保管されたビデオ・クリップに対応するサムネール・サイズを更新します。
EXEC SQL BEGIN DECLARE SECTION; struct { short len; char data[10000]; }hvThumbnail; EXEC SQL END DECLARE SECTION; /*Create thumbnail and store in hvThumbnail*/ EXEC SQL UPDATE employee SET picture=Thumbnail( picture, :hvThumbnail) WHERE name='Anita Jones';
ユーザー指定属性で画像またはビデオ・オブジェクトを更新する際に、サムネールを更新することもできます。 ユーザー指定の属性をもつ画像やビデオを更新する場合には、入力としてサムネール・サイズを指定しなければなりません。 それらのオブジェクトを更新する際にサムネール・サイズを更新したくなければ、サムネール・サイズの指定の代わりに、ヌル値か空ストリングを指定してください。
C アプリケーション・プログラムの次のステートメントでは、ユーザー指定の属性をもつビデオ・クリップと、そのビデオに対応するサムネール・サイズを更新します。
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; struct { short len; char data[400]; }hvVidattrs; struct { short len; char data[10000]; }hvThumbnail; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL; MMDBVideoAttrs *pvideoAttr; pvideoAttr=(MMDBVideoAttrs *)hvVidattrs.data; strcpy(pvideoAttr>cformat,"Formatv"); hvVidattrs.len=sizeof(MMDBVideoAttrs); /* Update video content and thumbnail */ EXEC SQL UPDATE EMPLOYEE SET VIDEO=REPLACE( VIDEO, '/employee/newvid/ajones.mpg', :hvStorageType, 'Anita''s new video', :VidAttrs, :hvThumbnail) /*thumbnail*/ WHERE NAME='Anita Jones';