IBM Books

Image, Audio, Video Extender °ü¸® ¹× ÇÁ·Î±×·¡¹Ö

»ç¿ëÀÚ Á¦°ø ¼Ó¼ºÀ¸·Î ¿ÀºêÁ§Æ® ÀúÀå

À̹ÌÁö, ¿Àµð¿À ¶Ç´Â ºñµð¿À ¿ÀºêÁ§Æ®ÀÇ ÀúÀå½Ã, Extender°¡ ÀÌÇØÇÏ´Â Çü½ÄÀ¸·Î Á¦ÇѵÇÁö ¾Ê½À´Ï´Ù. »ç¿ëÀÚ ÀÚ½ÅÀÇ Çü½ÄÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Extender°¡ Çü½ÄÀ» ÀÌÇØÇÏÁö ¸øÇÑ´Ù¸é, ¼Ò½º ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¼Ó¼º ±¸Á¶¿¡ ¼Ó¼º°ªÀ» ÁöÁ¤ÇϽʽÿÀ. ¼Ó¼º ±¸Á¶´Â UDF¿¡ ÀÖ´Â LONG VARCHAR FOR BIT DATA º¯¼öÀÇ µ¥ÀÌÅÍ Çʵ忡 ÀúÀåÇØ¾ß ÇÕ´Ï´Ù.

¼­¹öÀÇ UDF ÄÚµå´Â Ç×»ó "big endian Çü½Ä"ÀÇ µ¥ÀÌÅ͸¦ ¿¹»óÇÕ´Ï´Ù. Big endian Çü½ÄÀº ´ëºÎºÐÀÇ UNIX Ç÷§Æû¿¡¼­ »ç¿ëÇÏ´Â Çü½ÄÀÔ´Ï´Ù. "little endian Çü½Ä"À¸·Î ¿ÀºêÁ§Æ®¸¦ ÀúÀåÁßÀÎ °æ¿ì, ¼­¹öÀÇ UDF Äڵ尡 Á¦´ë·Î ó¸®ÇÒ ¼ö ÀÖµµ·Ï »ç¿ëÀÚ Á¦°ø ¼Ó¼º µ¥ÀÌÅ͸¦ ÁغñÇØ¾ß ÇÕ´Ï´Ù. Little endian Çü½ÄÀº Intel(R) ¹× ±âŸ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­ Ç÷§Æû¿¡¼­ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â Çü½ÄÀÔ´Ï´Ù. (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);
 
DBEXEC SQL INSERT INTO EMPLOYEE VALUES(
        '128557',
        'Anita Jones',
        DB2IMAGE(
          CURRENT SERVER,
          '/employee/images/ajones.bmp',
          :hvStorageType,
          'Anita''s picture',
          :hvImgattrs,                   /* user-specified attributes */
          CAST(NULL as LONG VARCHAR)
       );

C ÀÀ¿ëÇÁ·Î±×·¥¿¡ ÀÖ´Â ´ÙÀ½ ¸í·É¹®Àº µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ¿Àµð¿À Ŭ¸³ÀÌ ÀÖ´Â ÇàÀ» ÀúÀåÇÕ´Ï´Ù. ¼­¹ö ÆÄÀÏ¿¡ ÀÖ´Â ¼Ò½º ¿Àµð¿À Ŭ¸³¿¡´Â »ç¿ëÀÚ Á¤ÀÇ Çü½ÄÀ¸·Î, 44.1 kHzÀÇ »ùÇøµÀ²°ú µÎ °³ÀÇ ·¹ÄÚµåµÈ ä³ÎÀÌ ÀÖ½À´Ï´Ù. ¿Àµð¿À Ŭ¸³ÀÌ MIDI°¡ ¾Æ´Ï¹Ç·Î, Æ®·¢ À̸§°ú ¾Ç±â¿¡ ºó ¹®ÀÚ¿­À» ÁöÁ¤ÇÕ´Ï´Ù.

EXEC SQL BEGIN DECLARE SECTION;
long hvStorageType;
struct (
       short len;
       char data[600];
}hvAudattr;
EXEC SQL END DECLARE SECTION;
 
MMDBAudioAttrs          *paudiattr;
 
hvStorageType=MMDB_STORAGE_TYPE_INTERNAL;
 
paudioattr=(MMDBAudioAttrs *) hvAudattr.data;
strcpy(paudioAttr>cFormat,"FormatA");
paudioAttr>ulSamplingRate=44100;
paudioAttr>usNumChannels=2;
hvAudattrs.len=sizeof(MMDBAudioAttrs);
 
DBaPrepareAttrs(paudioAttr);
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
        '128557',
        'Anita Jones',
        DB2AUDIO(
          CURRENT SERVER,
          '/employee/sounds/ajones.aud',
          :hvStorageType,
          'Anita''s voice',
          :hvAudattr)                   /* user-specified attributes */
       );


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]