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À» ÂüÁ¶ÇϽʽÿÀ.
ÇϳªÀÇ 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'
¿©±â¼,
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 Á¦°øÀÚ¿¡ ´ëÇØ ¼¹ö À̸§À» Á¤ÀÇÇϱâ Àü¿¡ 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 ÂüÁ¶¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
¿¬°á ¹®ÀÚ¿ÀÇ ¿ÏÀüÇÑ ±¸¹® ¹× ¹®¹ý¿¡ ´ëÇÑ Á¤º¸´Â 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¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
|