»ç¿ëÀÚ Á¦°ø ¼Ó¼ºÀ¸·Î ÀúÀåµÈ À̹ÌÁö, ¿Àµð¿À ¶Ç´Â ºñµð¿À ¿ÀºêÁ§Æ® °»½Å½Ã ³»¿ëÀ» °»½ÅÇÏ´Â ¼Ó¼ºÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¼Ó¼º ±¸Á¶¿¡ ¼Ó¼º°ªÀ» ÁöÁ¤ÇϽʽÿÀ. ¼Ó¼º ±¸Á¶°¡ 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';