ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ¾È³»¼­

OLE DB Å×À̺í ÇÔ¼ö

Microsoft OLE DB´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡ ´Ù¾çÇÑ Á¤º¸ ¼Ò½º¿¡ ÀúÀåµÇ¾î ÀÖ´Â µ¥ÀÌÅÍ¿¡ ÀϰüµÈ ¾×¼¼½º¸¦ Á¦°øÇÏ´Â OLE/COM ÀÎÅÍÆäÀ̽º ¼¼Æ®ÀÔ´Ï´Ù. OLE DB ±¸¼º¿ä¼Ò DBMS ±¸Á¶´Â OLE DB »ç¿ëÀÚ¿Í OLE DB Á¦°øÀÚ¸¦ Á¤ÀÇÇÕ´Ï´Ù. OLE DB »ç¿ëÀÚ´Â OLE DB ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛ³» ÀÀ¿ëÇÁ·Î±×·¥ÀÔ´Ï´Ù. OLE DB Á¦°øÀÚ´Â OLE DB ÀÎÅÍÆäÀ̽º¸¦ °ø°³ÇÏ´Â ±¸¼º¿ä¼ÒÀÔ´Ï´Ù. OLE DB Á¦°øÀÚ¿¡´Â µÎ °¡Áö Ŭ·¡½º°¡ ÀÖ½À´Ï´Ù. µ¥ÀÌÅ͸¦ ¼ÒÀ¯Çϰí Å×À̺í Çü½ÄÀÇ µ¥ÀÌÅ͸¦ Çà ÁýÇÕÀ¸·Î °ø°³ÇÏ´Â OLE DB µ¥ÀÌÅÍ Á¦°øÀÚ¿Í, ÀÚ½ÅÀÇ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖÁö´Â ¾ÊÀ¸³ª OLE DB ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ ¸¸µé°í »ç¿ëÇÔÀ¸·Î½á ƯÁ¤ ¼­ºñ½º¸¦ ĸ½¶È­ÇÏ´Â OLE DB ¼­ºñ½º Á¦°øÀÚÀÔ´Ï´Ù.

DB2 Universal Database´Â »ç¿ëÀÚ°¡ OLE DB µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇÏ´Â Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© OLE DB ÀÀ¿ëÇÁ·Î±×·¥ ÀÛ¼ºÀ» ´Ü¼øÈ­ÇÕ´Ï´Ù. DB2´Â ¾î¶°ÇÑ OLE DB µ¥ÀÌÅͳª ¼­ºñ½º Á¦°øÀÚ¿¡°Ôµµ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â OLE DB »ç¿ëÀÚÀÔ´Ï´Ù. OLE DB ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ÀÚ½ÅÀÇ µ¥ÀÌÅ͸¦ °ø°³ÇÏ´Â µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÏ¿© GROUP BY, JOIN ¹× UNION µîÀÇ Á¶ÀÛÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Microsoft Access µ¥ÀÌÅͺ£À̽º³ª Microsoft Exchange ÁÖ¼Ò·ÏÀ¸·ÎºÎÅÍ Å×À̺íÀ» ¸®ÅÏÇÏ´Â OLE DB Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇÑ ÈÄ, ÀÌ OLE DB Å×À̺í ÇÔ¼ö·ÎºÎÅÍÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÀÚÀÇ DB2 µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ¿Í °æ°è¾øÀÌ(seamlessly) Á¶ÇÕÇÑ º¸°í¼­¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

OLE DB Å×À̺í ÇÔ¼ö¸¦ »ç¿ëÇϸé ÀÓÀÇÀÇ OLE DB Á¦°øÀÚ·ÎÀÇ ³»Àå ¾×¼¼½º¸¦ Á¦°øÇÔÀ¸·Î½á, ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ³ë·ÂÀ» Àý°¨ÇÒ ¼ö ÀÖ½À´Ï´Ù. C, Java ¹× OLE ÀÚµ¿ Å×À̺í ÇÔ¼öÀÇ °æ¿ì °³¹ßÀÚ°¡ Å×À̺í ÇÔ¼ö¸¦ ±¸ÇöÇØ¾ß ÇÏ´Â ¹Ý¸é, OLE DB Å×À̺í ÇÔ¼öÀÇ °æ¿ì ¿ø·¡ÀÇ ³»Àå OLE DB »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º°¡ OLE DB Á¦°øÀÚ¿Í ÀÎÅÍÆäÀ̽ºÇÏ¿© µ¥ÀÌÅ͸¦ °Ë»öÇÕ´Ï´Ù. ´ÜÁö ¾ð¾î À¯Çü OLEDBÀÇ Å×À̺í ÇÔ¼ö¸¦ µî·ÏÇϰí, µ¥ÀÌÅÍ ¼Ò½º·Î¼­ OLE DB Á¦°øÀÚ¿Í ÀûÀýÇÑ Çà ÁýÇÕÀ» ÂüÁ¶Çϱ⸸ ÇÏ¸é µË´Ï´Ù. OLE DB Å×À̺í ÇÔ¼ö¸¦ Ȱ¿ëÇϱâ À§ÇØ UDF ÇÁ·Î±×·¡¹ÖÀ» ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.

DB2 Universal Database¿Í ÇÔ²² OLE DB Å×À̺í ÇÔ¼ö¸¦ »ç¿ëÇÏ·Á¸é, OLE DB 2.0 ÀÌ»óÀ» ¼³Ä¡ÇØ¾ß Çϴµ¥, À̰ÍÀº http://www.microsoft.comÀÇ Microsoft¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú OLE DB¸¦ ¼³Ä¡ÇÏÁö ¾Ê°í OLE DB Å×À̺í ÇÔ¼ö¸¦ È£ÃâÇÏ·ÁÇÑ °æ¿ì, DB2´Â SQLCODE 465, SQLSTATE 58032,ÀÌÀ¯ ÄÚµå 35¸¦ ¹ßÇàÇÕ´Ï´Ù. ½Ã½ºÅÛ ¿ä±¸»çÇ× ¹× »ç¿ëÀÚÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â OLE DB Á¦°øÀÚ¿¡ ´ëÇÑ Á¤º¸´Â »ç¿ëÀÚÀÇ µ¥ÀÌÅÍ ¼Ò½º °ü·Ã ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ. OLE DB Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇÏ°í »ç¿ëÇÏ´Â »ùÇà ¸ñ·ÏÀº ºÎ·Ï B, »ùÇà ÇÁ·Î±×·¥ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. OLE DB ½ºÆåÀº Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998À» ÂüÁ¶ÇϽʽÿÀ.

OLE DB Å×À̺í ÇÔ¼ö ÀÛ¼º

ÇϳªÀÇ CREATE FUNCTION¹®À» »ç¿ëÇÏ¿© OLE DB Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ.

OLE DB µ¥ÀÌÅÍ ¼Ò½º´Â ÀÚ½ÅÀÇ µ¥ÀÌÅ͸¦ Çà ÁýÇÕÀ̶ó´Â Å×À̺í Çü½ÄÀ¸·Î °ø°³ÇÕ´Ï´Ù. Çà ÁýÇÕÀº °¢°¢ÀÇ ÇàÀÌ Ä÷³ ¼¼Æ®·Î ±¸¼ºµÇ´Â ÇàÀÇ ¼¼Æ®ÀÔ´Ï´Ù. RETURNS TABLEÀý¿¡´Â »ç¿ëÀÚ¿Í °ü·ÃÀÖ´Â Ä÷³¸¸ÀÌ Æ÷ÇԵ˴ϴÙ. Å×À̺í ÇÔ¼ö Ä÷³ÀÇ OLE DB µ¥ÀÌÅÍ ¼Ò½ºÀÇ Çà ÁýÇÕ Ä÷³À¸·ÎÀÇ ¹ÙÀεùÀº Ä÷³ À̸§¿¡ ±Ù°ÅÇÕ´Ï´Ù. OLE DB Á¦°øÀÚ°¡ ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ´Â °æ¿ì, Ä÷³ À̸§À» ÀοëºÎÈ£ ¾È¿¡ ³ÖÀ¸½Ê½Ã¿À. ¿¹¸¦ µé¸é "UPPERcase"ÀÔ´Ï´Ù. ¿ÏÀüÇÑ À̸§ÀÌ µÉ ¼ö ÀÖ´Â Çà ÁýÇÕ À̸§¿¡ ´ëÇÑ Á¤º¸´Â ¿ÏÀüÇÑ Çà ÁýÇÕ À̸§ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. OLE DB µ¥ÀÌÅÍ À¯ÇüÀÇ DB2 µ¥ÀÌÅÍ À¯ÇüÀ¸·ÎÀÇ ¸ÊÇο¡ ´ëÇÑ Á¤º¸´Â Áö¿øµÇ´Â OLE DB µ¥ÀÌÅÍ À¯ÇüÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. CREATE FUNCTION¹®ÀÇ ¿ÏÀüÇÑ ±¸¹®°ú EXTERNAL NAMEÀý¿¡ ´ëÇÑ ±ÔÄ¢Àº SQL ÂüÁ¶¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

EXTERNAL NAMEÀýÀº ´ÙÀ½°ú °°Àº Çü½Ä Áß Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

     'server!rowset'
  ¶Ç´Â
     '!rowset!connectstring'

¿©±â¼­,

server
CREATE SERVER¹®À» »ç¿ëÇÏ¿© µî·ÏµÈ ¼­¹ö¸¦ ½Äº°ÇÕ´Ï´Ù.

rowset
OLE DB Á¦°øÀÚ¿¡ ÀÇÇØ °ø°³µÈ Çà À̸§À̳ª Å×À̺íÀ» ½Äº°ÇÕ´Ï´Ù. Å×ÀÌºí¿¡ ÀÔ·Â ¸Å°³º¯¼ö°¡ ÀÖ´Â °æ¿ì, OLE DB Á¦°øÀÚ·Î ¸í·É ÅØ½ºÆ®¸¦ Àü´ÞÇϱâ À§ÇØ ÀÌ °ªÀº °ø¹éÀ̾î¾ß ÇÕ´Ï´Ù.

connectstring
OLE DB Á¦°øÀÚ¿¡ ¿¬°áÇÏ´Â µ¥ ÇÊ¿äÇÑ ÃʱâÈ­ Ư¼ºÀÌ µé¾î ÀÖ½À´Ï´Ù. ¿¬°á ¹®ÀÚ¿­ÀÇ ¿ÏÀüÇÑ ±¸¹® ¹× ¹®¹ý¿¡ ´ëÇÑ Á¤º¸´Â Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998ÀÇ "Data Link API of the OLE DB Core Components"¸¦ ÂüÁ¶ÇϽʽÿÀ.

CREATE FUNCTION¹®ÀÇ EXTERNAL NAMEÀý¿¡ ¿¬°á ¹®ÀÚ¿­À» »ç¿ëÇϰųª CREATE SERVER¹®¿¡ CONNECTSTRING ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº CREATE FUNCTION°ú SELECT¹®À» »ç¿ëÇÏ¿© OLE DB Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇϰí Microsoft Access µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍÀÇ Å×À̺íÀ» ¸®ÅÏÇÒ ¼ö ÀÖ½À´Ï´Ù.

   CREATE FUNCTION orders ()
     RETURNS TABLE (orderid INTEGER, ...)
     LANGUAGE OLEDB
     EXTERNAL NAME '!orders!Provider=Microsoft.Jet.OLEDB.3.51;
                   Data Source=c:\msdasdk\bin\oledb\nwind.mdb';
 
   SELECT orderid, DATE(orderdate) AS orderdate,
                   DATE(shippeddate) AS shippeddate
   FROM TABLE(orders()) AS t
   WHERE orderid = 10248;

EXTERNAL NAMEÀý¿¡ ¿¬°á ¹®ÀÚ¿­À» ³Ö´Â ´ë½Å ¼­¹ö À̸§À» ÀÛ¼ºÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, OLE DB Á¦°øÀÚÀÇ ¼­¹ö À̸§ Á¤ÀÇ¿¡¼­ ¼³¸íµÈ´ë·Î ¼­¹ö Nwind¸¦ Á¤ÀÇÇß´Ù°í °¡Á¤Çϸé, ´ÙÀ½°ú °°Àº CREATE FUNCTION¹®À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

   CREATE FUNCTION orders ()
     RETURNS TABLE (orderid INTEGER, ...)
     LANGUAGE OLEDB
     EXTERNAL NAME 'Nwind!orders';

OLE DB Å×À̺í ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ´Â ¹®ÀÚ¿­ µ¥ÀÌÅÍ À¯ÇüÀÇ ÀÔ·Â ¸Å°³º¯¼ö¸¦ Çϳª ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÔ·Â ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© ¸í·É ÅØ½ºÆ®¸¦ Á÷Á¢ OLE DB Á¦°øÀÚ·Î Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÔ·Â ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇÑ °æ¿ì, EXTERNAL NAMEÀý¿¡ Çà ÁýÇÕ À̸§À» ÁöÁ¤ÇÏÁö ¸¶½Ê½Ã¿À. DB2´Â ½ÇÇàÀ» À§ÇØ ¸í·É ÅØ½ºÆ®¸¦ OLE DB Á¦°øÀÚ¿¡°Ô Àü´ÞÇϰí, OLE DB Á¦°øÀÚ´Â Çà ÁýÇÕÀ» DB2·Î ¸®ÅÏÇÕ´Ï´Ù. °á°ú Çà ÁýÇÕÀÇ Ä÷³ À̸§°ú µ¥ÀÌÅÍ À¯ÇüÀº CREATE FUNCTION¹®ÀÇ RETURNS TABLE Á¤ÀÇ¿Í È£È¯°¡´ÉÇØ¾ß ÇÕ´Ï´Ù. Çà ÁýÇÕÀÇ Ä÷³ À̸§¿¡ ´ëÇÑ ¹ÙÀεùÀº ÀÏÄ¡ÇÏ´Â Ä÷³ À̸§¿¡ ±Ù°ÅÇϹǷÎ, Ä÷³ À̸§À» ÀûÀýÇÏ°Ô ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿¡¼­´Â OLE DB Å×À̺í ÇÔ¼ö¸¦ µî·ÏÇϴµ¥, ÀÌ ÇÔ¼ö´Â Microsoft SQL Server 7.0(TM) µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÈ Á¤º¸¸¦ °Ë»öÇÕ´Ï´Ù. ¿¬°á ¹®ÀÚ¿­Àº EXTERNAL NAMEÀý¿¡ ÁöÁ¤µË´Ï´Ù. Å×À̺í ÇÔ¼ö¿¡ OLE DB Á¦°øÀÚ·Î ¸í·É ÅØ½ºÆ®¸¦ ÅëÇØ Àü´ÞÇÒ ÀÔ·Â ¸Å°³º¯¼ö°¡ ÀÖÀ¸¹Ç·Î, Çà ÁýÇÕ À̸§Àº EXTERNAL NAMEÀý¿¡ ÁöÁ¤µÇÁö ¾Ê½À´Ï´Ù. Á¶È¸ ¿¹¿¡¼­´Â SQL ¼­¹ö µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ ¼¼ °³ÀÇ ÃÖ»óÀ§ Á¤º¸¸¦ °Ë»öÇÏ´Â SQL ¸í·É ÅØ½ºÆ®¸¦ Àü´ÞÇÕ´Ï´Ù.

   CREATE FUNCTION favorites (varchar(600))
     RETURNS TABLE (store_id char (4), name varchar (41), sales integer)
     SPECIFIC favorites
     LANGUAGE OLEDB
     EXTERNAL NAME '!!Provider=SQLOLEDB.1;Persist Security Info=False;
     User ID=sa;Initial Catalog=pubs;Data Source=WALTZ;
     Locale Identifier=1033;Use Procedure for Prepare=1;
     Auto Translate=False;Packet Size=4096;Workstation ID=WALTZ;
     OLE DB Services=CLIENTCURSOR;';
 
   SELECT *
   FROM TABLE (favorites (' select top 3 sales.stor_id as store_id,  ' ||
                          '        stores.stor_name as name,         ' ||
                          '        sum(sales. qty) as sales          ' ||
                          ' from sales, stores                       ' ||
                          ' where sales.stor_id = stores.stor_id     ' ||
                          ' group by sales.stor_id, stores.stor_name ' ||
                          ' order by sum(sales.qty) desc')) as f;

¿ÏÀüÇÑ Çà ÁýÇÕ À̸§

ÀϺΠÇà ÁýÇÕÀº ¿ÏÀüÇÑ À̸§À» »ç¿ëÇÏ¿© EXTERNAL NAMEÀý¿¡¼­ ½Äº°µÉ ¼ö ÀÖ½À´Ï´Ù. ¿ÏÀüÇÑ À̸§Àº ´ÙÀ½ Áß Çϳª ¶Ç´Â ¸ðµÎ¸¦ Á¶ÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù.

īŻ·Î±×¿Í ½ºÅ°¸¶ À̸§¿¡ ´ëÇÏ¿© »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚ°¡ Á¦°øÇÏ´Â Áö¿ø¿¡ ´ëÇÑ Á¤º¸´Â, »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚÀÇ ¸®ÅÍ·² Á¤º¸ °ü·Ã ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

DBLITERAL_CATALOG_NAMEÀÌ »ç¿ëÀÚÀÇ Á¦°øÀÚÀÇ ¸®ÅÍ·² Á¤º¸¿¡¼­ NULLÀÌ ¾Æ´Ñ °æ¿ì, īŻ·Î±× À̸§ ¹× ±¸ºÐ ¹®ÀÚ·Î DBLITERAL_CATALOG_SEPARATOR °ªÀ» »ç¿ëÇϽʽÿÀ. īŻ·Î±× À̸§ÀÌ ¿ÏÀüÇÑ À̸§ÀÇ ¾Õ¿¡ ¿Ã °ÍÀÎÁö µÚ¿¡ ¿Ã °ÍÀÎÁö¸¦ °áÁ¤ÇÏ·Á¸é, »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚÀÇ Æ¯¼º ¼¼Æ® DBPROPSET_DATASOURCEINFO¿¡¼­ DBPROP_CATALOGLOCATION °ªÀ» ÂüÁ¶ÇϽʽÿÀ.

»ç¿ëÀÚÀÇ Á¦°øÀÚÀÇ ¸®ÅÍ·² Á¤º¸¿¡¼­ DBLITERAL_SCHEMA_NAMEÀÌ NULLÀÌ ¾Æ´Ñ °æ¿ì, ½ºÅ°¸¶ À̸§°ú ±¸ºÐ ¹®ÀÚ·Î DBLITERAL_SCHEMA_SEPARATOR °ªÀ» »ç¿ëÇϽʽÿÀ.

À̸§¿¡ Ư¼ö ¹®ÀÚ°¡ µé¾î Àְųª Ű¿öµå¿Í µ¿ÀÏÇÑ °æ¿ì, ÀÌ À̸§À» »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚ¿¡¼­ ÁöÁ¤ÇÏ´Â ÀÎ¿ë ¹®ÀÚ ¾È¿¡ ³ÖÀ¸½Ê½Ã¿À. ÀÎ¿ë ¹®ÀÚ´Â »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚ ¸®ÅÍ·² Á¤º¸¿¡ DBLITERAL_QUOTE_PREFIX ¹× DBLITERAL_QUOTE_SUFFIX·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ EXTERNAL NAME¿¡¼­ ÁöÁ¤µÈ Çà ÁýÇÕ¿¡´Â authors¶ó´Â Çà ÁýÇÕ¿¡ ´ëÇÑ Ä«Å»·Î±× À̸§ pubs¿Í ½ºÅ°¸¶ À̸§ dbo°¡, À̸§À» ³Ö´Âµ¥ »ç¿ëµÇ´Â ÀÎ¿ë ¹®ÀÚ "¿Í ÇÔ²² Æ÷ÇԵ˴ϴÙ.

   EXTERNAL NAME '!"pubs"."dbo"."authors"!Provider=SQLOLEDB.1;...';

¿ÏÀüÇÑ À̸§À» ¸¸µå´Â °Í¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998 ¹× »ç¿ëÀÚÀÇ OLE DB Á¦°øÀÚ °ü·Ã ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

OLE DB Á¦°øÀÚÀÇ ¼­¹ö À̸§ Á¤ÀÇ

OLE Á¦°øÀÚ¿¡ ´ëÇØ ¼­¹ö À̸§À» Á¤ÀÇÇϱâ Àü¿¡ CREATE WRAPPER OLEDB¹®À» »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¶´Ù OLE DB ·¦ÆÛ¸¦ Çѹø µî·ÏÇØ¾ß ÇÕ´Ï´Ù. CREATE WRAPPER OLEDB¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¼³Ä¡ ¹× ±¸¼º º¸Ãæ ¼³¸í¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸¹Àº CREATE FUNCTION¹®¿¡ ´ëÇÏ¿© »ç¿ëÀÚ°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â OLE DB µ¥ÀÌÅÍ ¼Ò½ºÀÇ ¼­¹ö À̸§À» Á¦°øÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ CREATE SERVER¹®À» »ç¿ëÇϽʽÿÀ.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº CREATE SERVER¹®À» »ç¿ëÇÏ¿© Microsoft Access OLE DB Á¦°øÀÚ¿¡ ´ëÇÑ ¼­¹ö À̸§ Nwind¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

   CREATE SERVER Nwind
     WRAPPER OLEDB
     OPTIONS (CONNECTSTRING 'Provider=Microsoft.Jet.OLEDB.3.51;
              Data Source=c:\msdasdk\bin\oledb\nwind.mdb');

±×¸®°í ¼­¹ö À̸§ Nwind¸¦ »ç¿ëÇÏ¿© CREATE FUNCTION¹®¿¡¼­ OLE DB Á¦°øÀÚ¸¦ ½Äº°ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.

   CREATE FUNCTION orders ()
     RETURNS TABLE (orderid INTEGER, ...)
     LANGUAGE OLEDB
     EXTERNAL NAME 'Nwind!orders';

CREATE SERVER¹®ÀÇ ¿ÏÀüÇÑ ±¸¹®¿¡ ´ëÇÑ Á¤º¸´Â SQL ÂüÁ¶¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. OLE DB Á¦°øÀÚ¿¡ ´ëÇÑ »ç¿ëÀÚ ¸ÊÇÎ Á¤º¸´Â »ç¿ëÀÚ ¸ÊÇÎ Á¤ÀÇÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

»ç¿ëÀÚ ¸ÊÇÎ Á¤ÀÇ

DB2 »ç¿ëÀڵ鿡°Ô »ç¿ëÀÚ ¸ÊÇÎÀ» Á¦°øÇÏ¿©, À̵éÀÌ ´Ù¸¥ »ç¿ëÀÚ À̸§°ú ¾ÏÈ£¸¦ °¡Áö°í OLE DB µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÁ¤ »ç¿ëÀÚµéÀÇ »ç¿ëÀÚ À̸§À» ¸ÊÇÎÇÏ·Á¸é, CREATE USER MAPPING¹®À» »ç¿ëÇÏ¿© »ç¿ëÀÚ ¸ÊÇÎÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµç »ç¿ëÀÚµéÀÌ °øÀ¯ÇÏ´Â »ç¿ëÀÚ ¸ÊÇÎÀ» Á¦°øÇÏ·Á¸é, »ç¿ëÀÚ À̸§°ú ¾ÏÈ£¸¦ »ç¿ëÀÚÀÇ CREATE FUNCTION ¶Ç´Â CREATE SERVER¹®ÀÇ ¿¬°á ¹®ÀÚ¿­¿¡ Ãß°¡ÇϽʽÿÀ. ¿¹¸¦ µé¾î, OLE DB ¼­¹ö Nwind¿¡¼­ DB2 »ç¿ëÀÚ JOHN¿¡ ´ëÇÑ Æ¯Á¤ »ç¿ëÀÚ ¸ÊÇÎÀ» ÀÛ¼ºÇÏ·Á¸é, ´ÙÀ½°ú °°Àº CREATE USER MAPPING¹®À» »ç¿ëÇϽʽÿÀ.

   CREATE USER MAPPING FOR john
     SERVER Nwind
     OPTIONS (REMOTE_AUTHID 'dave', REMOTE_PASSWORD 'mypwd');

OLE DB Å×À̺í ÇÔ¼ö orders¸¦ È£ÃâÇÏ´Â ¸ðµç DB2 »ç¿ëÀÚ¿¡°Ô µ¿µîÇÑ ¾×¼¼½º¸¦ Á¦°øÇÏ·Á¸é, CREATE FUNCTIONÀ̳ª CREATE SERVER¹® Áß Çϳª¿¡¼­ ´ÙÀ½°ú °°Àº CONNECTSTRINGÀ» »ç¿ëÇϽʽÿÀ.

   CREATE FUNCTION orders ()
     RETURNS TABLE (orderid INTEGER, ...)
     LANGUAGE OLEDB
     EXTERNAL NAME '!orders!Provider=Microsoft.Jet.OLEDB.3.51;User ID=dave;
                    Password=mypwd;Data Source=c:\msdasdk\bin\oledb\nwind.mdb';

DB2´Â ´ÙÀ½°ú °°Àº »ç¿ëÀÚ ¸ÊÇÎ ±ÔÄ¢À» Àû¿ëÇÕ´Ï´Ù.

CREATE USER MAPPING¹®ÀÇ ¿ÏÀüÇÑ ±¸¹®¿¡ ´ëÇÑ Á¤º¸´Â SQL ÂüÁ¶¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Áö¿øµÇ´Â OLE DB µ¥ÀÌÅÍ À¯Çü

¿¬°á ¹®ÀÚ¿­ÀÇ ¿ÏÀüÇÑ ±¸¹® ¹× ¹®¹ý¿¡ ´ëÇÑ Á¤º¸´Â Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998ÀÇ "Data Link API of the OLE DB Core Components"¸¦ ÂüÁ¶ÇϽʽÿÀ. »ç¿ëÀÚÀÇ OLE DB Å×À̺í ÇÔ¼ö¿¡¼­ ÀûÀýÇÑ RETURNS TABLE Ä÷³À» Á¤ÀÇÇÏ·Á¸é, ¸ÊÇÎ Å×À̺íÀ» »ç¿ëÇϽʽÿÀ. ¿¹¸¦ µé¾î, µ¥ÀÌÅÍ À¯ÇüÀÌ INTEGERÀÎ Ä÷³À» °®´Â OLE DB Å×À̺í ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â °æ¿ì, DB2´Â OLE DB Á¦°øÀڷκÎÅÍÀÇ µ¥ÀÌÅ͸¦ DBTYPE_I4·Î¼­ ¿äûÇÕ´Ï´Ù.

OLE DB Á¦°øÀÚ ¼Ò½º µ¥ÀÌÅÍ À¯ÇüÀ» OLE DB µ¥ÀÌÅÍ À¯Çü¿¡ ¸ÊÇÎÇÏ´Â °Í¿¡ ´ëÇÑ Á¤º¸´Â OLE DB Á¦°øÀÚ °ü·Ã ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ. ANSI SQL, Microsoft Acess ¹× Microsoft SQL ¼­¹ö Á¦°øÀÚ°¡ °¢°¢ÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» OLE DB µ¥ÀÌÅÍ À¯Çü¿¡ ¸ÊÇÎÇÏ´Â ¹æ½ÄÀÇ ¿¹´Â Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998À» ÂüÁ¶ÇϽʽÿÀ.


Ç¥ 18. DB2 µ¥ÀÌÅÍ À¯ÇüÀ» OLE DB¿¡ ¸ÊÇÎ
DB2 µ¥ÀÌÅÍ À¯Çü OLE DB µ¥ÀÌÅÍ À¯Çü
SMALLINT DBTYPE_I2
INTEGER DBTYPE_I4
BIGINT DBTYPE_I8
REAL DBTYPE_R4
FLOAT/DOUBLE DBTYPE_R8
DEC (p, s) DBTYPE_NUMERIC (p, s)
DATE DBTYPE_DBDATE
TIME DBTYPE_DBTIME
TIMESTAMP DBTYPE_DBTIMESTAMP
CHAR(N) DBTYPE_STR
VARCHAR(N) DBTYPE_STR
LONG VARCHAR DBTYPE_STR
CLOB(N) DBTYPE_STR
CHAR(N) FOR BIT DATA DBTYPE_BYTES
VARCHAR(N) FOR BIT DATA DBTYPE_BYTES
LONG VARCHAR FOR BIT DATA DBTYPE_BYTES
BLOB(N) DBTYPE_BYTES
GRAPHIC(N) DBTYPE_WSTR
VARGRAPHIC(N) DBTYPE_WSTR
LONG GRAPHIC DBTYPE_WSTR
DBCLOB(N) DBTYPE_WSTR
ÁÖ:OLE DB µ¥ÀÌÅÍ À¯Çüº¯È¯ ±ÔÄ¢Àº Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
  • OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_CY¸¦ °Ë»öÇϱâ À§Çؼ­, µ¥ÀÌÅÍ´Â DB2 µ¥ÀÌÅÍ À¯Çü DEC(19,4)·Î ¸ÊÇεǴ OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_NUMERIC(19,4)·Î º¯È¯µÉ ¼ö ÀÖ½À´Ï´Ù.
  • OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_I1À» °Ë»öÇϱâ À§Çؼ­, µ¥ÀÌÅÍ´Â DB2 µ¥ÀÌÅÍ À¯Çü SMALLINT·Î ¸ÊÇεǴ OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_I2·Î º¯È¯µÉ ¼ö ÀÖ½À´Ï´Ù.
  • OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_GUID¸¦ °Ë»öÇϱâ À§Çؼ­, µ¥ÀÌÅÍ´Â DB2 µ¥ÀÌÅÍ À¯Çü CHAR(12) FOR BIT DATA·Î ¸ÊÇεǴ OLE DB µ¥ÀÌÅÍ À¯Çü DBTYPE_BYTES·Î º¯È¯µÉ ¼ö ÀÖ½À´Ï´Ù.


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