IBM Books

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

DB2Video


Image Audio Video
    X

µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ºñµð¿À ³»¿ëÀ» ÀúÀåÇÕ´Ï´Ù. ºñµð¿À ¼Ò½º´Â Ŭ¶óÀÌ¾ðÆ® ¹öÆÛ, Ŭ¶óÀÌ¾ðÆ® ÆÄÀÏ ¶Ç´Â ¼­¹ö ÆÄÀÏ¿¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ºñµð¿À´Â BLOBÀ¸·Î µ¥ÀÌÅͺ£À̽º Å×À̺íÀ̳ª, ¼­¹ö ÆÄÀÏ(µ¥ÀÌÅͺ£À̽º Å×À̺íÀÌ ÂüÁ¶ÇÏ´Â)¿¡ ÀúÀåµÉ ¼ö ÀÖ½À´Ï´Ù. ºñµð¿À ¼Ò½º´Â DB2 Video Extender°¡ ÀúÀ念¿ª¿¡ ´ëÇÑ ¼Ó¼ºÀ» Ç¥½ÃÇÏ´Â °æ¿ì¿¡´Â Áö¿øµÇ´Â Çü½ÄÀ¸·Î ÀÖÀ» ¼ö ÀÖ°í, ¶Ç´Â ¼Ó¼ºÀÌ UDF¿¡ ÁöÁ¤µÇ¾î¾ß ÇÏ´Â °æ¿ì¿¡ Áö¿øµÇÁö ¾ÊÀº Çü½ÄÀ¸·Î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Include ÆÄÀÏ

dmbvideo.h

±¸¹®

¹öÆÛ³ª Ŭ¶óÀÌ¾ðÆ® ÆÄÀϷκÎÅÍ ³»¿ë ÀúÀå

>>-DB2Video--(--dbname--,--content--,--format--,---------------->
 
>----target_file--,--comment--)--------------------------------><
 

±¸¹®

¼­¹ö ÆÄÀϷκÎÅÍ ³»¿ë ÀúÀå

>>-DB2Video--(--dbname--,--source_file--,--format--,--stortype--,-->
 
>---comment--)-------------------------------------------------><
 

±¸¹®

¹öÆÛ ¶Ç´Â Ŭ¶óÀÌ¾ðÆ® ÆÄÀϷκÎÅÍ »ç¿ëÀÚ Á¦°ø ¼Ó¼ºÀ¸·Î ³»¿ë ÀúÀå

>>-DB2Video--(--dbname--,--content--,--target_file--,----------->
 
>----comment--,--attrs--,--thumbnail--)------------------------><
 

±¸¹®

¼­¹ö ÆÄÀϷκÎÅÍ »ç¿ëÀÚ Á¦°ø ¼Ó¼ºÀ¸·Î ³»¿ë ÀúÀå

>>-DB2Video--(--dbname--,--source_file--,--stortype--,--comment--,-->
 
>---attrs--,--thumbnail--)-------------------------------------><
 

¸Å°³º¯¼ö(µ¥ÀÌÅÍ À¯Çü)

dbname(VARCHAR(18))
CURRENT SERVER Ư¼ö ·¹Áö½ºÅͰ¡ Ç¥½ÃÇÏ´Â °Í°ú °°Àº ÇöÀç ¿¬°áµÈ µ¥ÀÌÅͺ£À̽º À̸§.

content(BLOB(2G) AS LOCATOR)
ºñµð¿À ³»¿ëÀÌ Àִ ȣ½ºÆ® º¯¼ö. È£½ºÆ® º¯¼ö´Â BLOB, BLOB_FILE ¶Ç´Â BLOB_LOCATOR µ¥ÀÌÅÍ À¯ÇüÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. DB2´Â ³»¿ëÀ» BLOB_LOCATOR·Î ÁøÇà½Ã۰í LOB À§Ä¡ ÁöÁ¤ÀÚ¸¦ DB2Video UDF·Î Àü´ÞÇÕ´Ï´Ù. ³»¿ëÀÌ Å¬¶óÀÌ¾ðÆ® ¹öÆÛ¿¡ ÀÖ´Ù¸é, ÃÖ¼ÒÇÑ ¹öÆÛ¿¡´Â ¿ÏÀüÇÑ ºñµð¿À Çì´õ°¡ ÀÐÈ÷´ÂÁö È®ÀÎÇÏ´Â ³»¿ëÀÇ Ã³À½ 640 KB°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

format(VARCHAR(8))
¼Ò½º ºñµð¿À Çü½Ä. ³Î(NULL) °ª ¶Ç´Â ºó ¹®ÀÚ¿­À» ÁöÁ¤ÇÒ °æ¿ì, Video Extender´Â ÀÚµ¿À¸·Î ¼Ò½º Çü½ÄÀ» ÆÇº°ÇÏ·Á°í ÇÕ´Ï´Ù. ºñµð¿À´Â ¼Ò½º¿Í µ¿ÀÏ Çü½ÄÀ¸·Î ÀúÀåµË´Ï´Ù. Áö¿øµÇ´Â ºñµð¿À Çü½Ä¿¡ ´ëÇØ¼­´Â Ç¥ 4¸¦ ÂüÁ¶ÇϽʽÿÀ. MPG1 Çü½Ä¿¡ ´ëÇØ MPG1, mpg1, MPEG1 ¶Ç´Â mpeg1À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. MPG2 Çü½Ä¿¡ ´ëÇØ MPG2, mpg2, MPEG2 ¶Ç´Â mpeg2¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

target_file(LONG VARCHAR)
¸ñÇ¥ ¼­¹ö ÆÄÀÏ(¼­¹ö ÆÄÀÏ·Î ÀúÀå¿ë) À̸§ ¶Ç´Â ³Î(NULL) °ªÀ̳ª ºó ¹®ÀÚ¿­(BLOBÀ¸·Î µ¥ÀÌÅͺ£À̽º Å×À̺í·Î ÀúÀå¿ë). ¼­¹ö ÆÄÀÏÀº ¿ÏÀüÈ÷ ±ÔÁ¤µÈ À̸§À̾î¾ß ÇÕ´Ï´Ù. À̸§ÀÌ ±ÔÁ¤µÇÁö ¾Ê´Â´Ù¸é, ¼­¹ö¿¡ ÀÖ´Â DB2VIDEOSTORE¿Í DB2MMSTORE ȯ°æ º¯¼ö°¡ ÆÄÀÏÀ» À§Ä¡ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

source_file(LONG VARCHAR)
¼Ò½º ¼­¹ö ÆÄÀÏ À̸§. À̸§Àº ¿ÏÀüÈ÷ ±ÔÁ¤µÈ À̸§À̳ª ±ÔÁ¤µÇÁö ¾ÊÀº À̸§ÀÏ ¼ö ÀÖ½À´Ï´Ù. ³Î(NULL) °ªÀ̳ª ºó ¹®ÀÚ¿­ÀÌ µÉ ¼ö´Â ¾ø½À´Ï´Ù. À̸§ÀÌ ±ÔÁ¤µÇÁö ¾Ê´Â´Ù¸é, ¼­¹ö¿¡ ÀÖ´Â DB2VIDEOPATH¿Í DB2MMPATH ȯ°æ º¯¼ö°¡ ÆÄÀÏÀ» À§Ä¡ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÉ °ÍÀÔ´Ï´Ù.

stortype(INTEGER)
ºñµð¿À°¡ ÀúÀåµÉ Àå¼Ò¸¦ Ç¥½ÃÇÏ´Â °ª. »ó¼ö MMDB_STORAGE_TYPE_INTERNAL(°ª=1)Àº ºñµð¿À°¡ BLOBÀ¸·Î µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÉ °Í°ËÀ» ³ªÅ¸³À´Ï´Ù. »ó¼ö MMDB_STORAGE_TYPE_EXTERNAL(°ª=0)Àº ºñµð¿À ³»¿ëÀÌ ¼­¹ö ÆÄÀÏ(µ¥ÀÌÅͺ£À̽º¿¡¼­ Áö½ÃµÊ)¿¡ ÀúÀåµÉ °ÍÀÓÀ» ³ªÅ¸³À´Ï´Ù.

comment(LONG VARCHAR)
ºñµð¿À¿Í ÇÔ²² ÀúÀåµÇ´Â ÁÖ¼®.

attrs(LONG VARCHAR FOR BIT DATA)
ºñµð¿À ¼Ó¼º.

thumbnail(LONG VARCHAR FOR BIT DATA)
ºñµð¿À¸¦ ³ªÅ¸³»´Â ½æ³×ÀÏ À̹ÌÁö.

¸®ÅÏ °ª(µ¥ÀÌÅÍ À¯Çü)

ºñµð¿À ÇÚµé(DB2VIDEO)

¿¹

Anita Jones¿ë ºñµð¿À Ŭ¸³ÀÌ ÀÖ´Â ·¹Äڵ带 employee Å×ÀÌºí¿¡ »ðÀÔÇϽʽÿÀ. ºñµð¿À ¼Ò½º´Â Ŭ¶óÀÌ¾ðÆ® ¹öÆÛ¿¡ ÀÖ½À´Ï´Ù. BLOBÀ¸·Î Å×ÀÌºí¿¡ ºñµð¿À Ŭ¸³À» ÀúÀåÇϽʽÿÀ.

EXEC SQL BEGIN DECLARE SECTION
     SQL TYPE IS BLOB (8M) vid;
EXEC SQL END DECLARE SECTION;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2VIDEO(
         CURRENT SERVER,
         :vid,
         'MPEG1',
         CAST(NULL as LONG VARCHAR),
         'Anita''s video'));

Robert SmithÀÇ ºñµð¿À Ŭ¸³ÀÌ ÀÖ´Â ·¹Äڵ带 employee Å×ÀÌºí¿¡ »ðÀÔÇϽʽÿÀ. ºñµð¿À ¼Ò½º´Â ¼­¹ö ÆÄÀÏ¿¡ ÀÖ½À´Ï´Ù. employee Å×ÀÌºí ·¹ÄÚµå´Â ÆÄÀÏÀ» Áö½ÃÇÒ °ÍÀÔ´Ï´Ù.

EXEC SQL BEGIN DECLARE SECTION;
long hvStorageType;
EXEC SQL END DECLARE SECTION;
 
hvStorageType = MMDB_STORAGE_TYPE_EXTERNAL;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '384779',
      'Robert Smith',
      DB2VIDEO(
         CURRENT SERVER,
         '/employee/videos/rsmith.mpg',
         'MPEG1',
         :hvStorageType,
         'Robert''s video'));

ºñµð¿À Ŭ¸³ÀÌ ÀÖ´Â ·¹Äڵ带 µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ »ðÀÔÇϽʽÿÀ. ¼­¹ö ÆÄÀÏ¿¡ ÀÖ´Â ¼Ò½º ºñµð¿À Ŭ¸³Àº »ç¿ëÀÚ Á¤ÀÇ Çü½ÄÀ» °®½À´Ï´Ù. ¼­¹ö ÆÄÀÏ¿¡ ÀÖ´Â ºñµð¿À ³»¿ëÀ» À¯ÁöÇϽʽÿÀ.(µ¥ÀÌÅͺ£À̽º ·¹ÄÚµå´Â ÆÄÀÏÀ» Áö½ÃÇÒ °ÍÀÔ´Ï´Ù.) ºñµð¿À¸¦ ³ªÅ¸³»´Â ½æ³×ÀÏÀ» ÀúÀåÇϽʽÿÀ.

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;
 
MMDBVideoAttrs         *pvideoAttr;
 
hvStorageType = MMDB_STORAGE_TYPE_EXTERNAL;
 
pvideoAttr=(MMDBVideoAttrs *)hvVidattrs.data;
strcpy(pvideoAttr>cFormat,"Formatv");
pvideoAttr.len=sizeof(MMDBVideoAttrs);

·
·
·
/* Generate thumbnail and assign data */ /* in video structure */
·
·
·
EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2VIDEO( CURRENT SERVER, '/employee/videos/ajones.vid', :hvStorageType, 'Anita''s video', :hvVidattrs, :hvThumbnail) );


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