How to display the text and images from Oracle databases on the web
since 19 May, 1999 last modified 19 May, 1999
Á¶°Ç Condition
Unix(AIX)»ó¿¡¼ ¿î¿ëµÇ´Â Oracle 7.3 Database¿¡ ÀÇÇÏ¿© Record¿Í °ü·Ã Image°¡ °ü¸®µÇ°í ÀÖ´Ù (CATIA CDM Database ±¸Á¶). Web Service´Â MS IIS 4.0¿¡ ÀÇÇÏ¿© Windows NTȯ°æ¿¡¼ ¿î¿ë µÇ°í ÀÖÀ¸¸ç Databases´Â ODBC¸¦ ÀÌ¿ëÇÏ¿© Active Server PageÀÇ Application Logic¿¡ ¿¬°áµÇ¾î ÀÖ´Ù. ÀÌ »óȲ¿¡¼ Record¿Í Image¸¦ µ¿½Ã¿¡ WebÀ» ÅëÇÏ¿© Á¦°øÇÏ¿©¾ß ÇÑ´Ù.
Image DataÀÇ ÀúÀå
Image´Â OracleÀÇ Long Raw TypeÀ¸·Î ÀúÀåµÇ¾î ÀÖ´Ù. ÀÌ´Â OracleÀÇ ProC¸¦ ÀÌ¿ëÇÑ ApplicationÀ» ÅëÇÏ¿© ÃßÃâÇÒ ¼ö ÀÖÀ¸¸ç ƯÈ÷ CDMÀÇ Long Filed TypeÀº ÀÚüÀÇ Æ¯º°ÇÑ Data ±¸Á¶¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î À̸¦ ÃßÃâÇÏ´Â ApplicationÀÌ ÇÊ¿äÇÏ´Ù.(ÂüÁ¶)
Image DataÀÇ Web Server·Î Retrieval
ODBC¸¦ ÀÌ¿ëÇÏ¿© ASP ¿¡¼ Retrieval Logic °³¹ß :- Long Raw TypeÀÇ ODBC Áö¿ø ºÒÈ®½Ç, ½ÃÇè½Ã System hangÀÌ ÀϾÀ½. => ODBCÀÇ Long Raw Type Áö¿ø È®ÀÎ ¿ä
Image Server ¿ë Unix Web Server (httpd) µµÀÔ
ODBC¸¦ ÅëÇØ IIS¿¡ Image Retrieval Logic ±¸ÇöÀÌ ºÒ°¡ÇÔ¿¡ µû¶ó Image¸¸ ¼ºñ½º ÇÒ ¼ö ÀÖ´Â AIX ¿ë Web Server µµÀÔ, ÇØ´ç Web Server´Â getimg.cgi ÇÁ·Î±×·¥À¸·Î OracleÀÇ Image Data¸¦ MIME type header¸¦ Æ÷ÇÔÇÏ¿© Á÷Á¢ (Àӽà ÆÄÀÏÀ» ¸¸µéÁö ¾Ê°í) ¼ºñ½ºÇÏ´Â ±â´ÉÀ» ÇÑ´Ù. ÀÌ´Â Oracle ÀÇ ProC¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¼ºµÇ¾ú´Ù(¾Æ·¡ getimg.pc ÂüÁ¶).
/* ---- getimage.pc ---- */ main() { .... /* MIME Type Header Define */ printf("Content-type: image/gif %c%c",10,10); get_image(input_str); .... } /*-------------------------------*/ /* get image from DB */ void get_image(input_part) char input_part[15]; { char s_pname[15]; long_varraw lvr; /* For Long Raw Type */ short ind; EXEC SQL VAR s_pname is string(15); EXEC SQL declare key_cursor cursor for SELECT d."$DATA" INTO :s_pname, :recno, :seqno,:lvr :ind FROM pns.part_list a, pns.document b, pns."$EXT_LF" c, pns.LF00001 d WHERE a.s_pname = :input_part AND a."$COID"=b."$COID" AND b."$COID"=c."$COID" AND d."$COID" = SUBSTR(c."$CUR_ACC_MET_DATA",55,16) AND d."$COMPID" = SUBSTR(c."$CUR_ACC_MET_DATA",71,16); EXEC SQL open key_cursor; while (1) { EXEC SQL whenever not found do break; EXEC SQL fetch key_cursor into :s_pname, :recno, :seqno, :lvr :ind; /* Write Binary Data into STDOUT */ fwrite(lvr.buf+4, sizeof(char), lvr.len-4, stdout); } .... }TextÁ¤º¸¿Í ImageÁ¤º¸ÀÇ Display
TextÁ¤º¸¸¦ ¸¸µå´Â ASP ¿¡ <IMG> ¸¦ »ç¿ëÇÏ¹Ç·Î½á µÎ Á¤º¸°¡ µ¿½Ã¿¡ DisplayµÇµµ·Ï ÀÛ¼ºÇÏ¿´´Ù(¾Æ·¡ gettxt.asp ÂüÁ¶).
.... <% pns_name=Request("pns_name") Response.Write("<BR>"+pns_name) %> <IMG SRC="http://157.171.182.69/cgi-bin/getimg.cgi?<%=pns_name%>"> ....
Korean Engineering Databases © copyright Namchul Do, 1999