當您更新連同使用者提供之屬性一起儲存的影像、音效或視訊物件時, 您必須指定更新內容的屬性。請在某個屬性結構中指定屬性值。 屬性結構必須儲存在 UDF 之 LONG VARCHAR FOR BIT DATA 變數的資料欄位中。
伺服器上的 UDF 碼會預期資料為"big endian 格式"。Big endian 格式是大部 份 UNIX 平台使用的格式。 若使用"little endian 格式"儲存某物件,您必須準 備使用者提供的屬性資料,以便伺服器上的 UDF 碼能夠正確處理該物件。 Little endian 格式是通常用於 Intel 和其它微處理器平台的格式。 (即使您沒有使用 little endian 格式儲存物件,仍然建議您準備使用者提供的屬性資料。) 使用 DBiPrepareAttrs API 來準備影像物件的屬性。 使用 DBaPrepareAttrs API 來準備音效物件的屬性。 使用 DBvPrepareAttrs API 來準備視訊物件的屬性。
例如,下列在 C 應用程式中的陳述式會更新其內容是在伺服器檔案中的影像。 該影像具有使用者定義的格式:高 640 圖點、寬 480 圖點。請注意: 要在更新影像之前準備屬性。
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; struct { short len; char data [400]; }hvImgattrs; EXEC SQL END DECLARE SECTION; DB2IMAGEATTRS *pimgattr; hvStorageType=MMDB_STORAGE_TYPE_INTERNAL; pimgattr = (DB2IMAGEATTRS *) hvImgattrs.data; strcpy(pimgattr>Format,"FormatI"); pimgattr>width=640; pimgattr>height=480; hvImgattrs.len=sizeof(DB2IMAGEATTRS); DBiPrepareAttrs(pimgattr); EXEC SQL UPDATE EMPLOYEE SET PICTURE=REPLACE( PICTURE, '/employee/newimg/ajones.bmp', :hvStorageType, 'Anita''s new picture', :ImgAttrs, /*user-supplied attributes*/ CAST(NULL as LONG VARCHAR)) WHERE NAME='Anita Jones';