´ëÈ »óÀÚ ¸®¼Ò½º ÆÄÀÏ¿¡¼ ¸¸µç ½ÇÇà ´ÜÃß¿¡ ´ë ÇÑ Ã³¸®±â ÇÔ¼ö¸¦ Ãß°¡ ÇØ¾ß ÇÕ´Ï´Ù.
½ÇÇà ´ÜÃß Ã³¸®±â¸¦ ¸¸µé·Á¸é
CTRL ½ÇÇà ¹öưÀ» µÎ ¹ø Ŭ¸¯ ÇÕ´Ï´Ù. CTestProvDlg::OnRun ÇÔ¼ö´Â ¼Ò½º â¿¡ ³ªÅ¸³³´Ï´Ù.󸮱⸦ ¸¸µé·Á¸é ´ÙÀ½ OLE DB ¼ÒºñÀÚ ÅÛÇø´ Ŭ·¡½º¸¦ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù.:
ÀÌ·¯ÇÑ °¢ Ŭ·¡½º´Â °ø±ÞÀÚ¿¡¼ COM °³Ã¼¿¡ ÇØ´ç¡£
¾Æ·¡ Äڵ带 Ãß°¡ ÇÕ´Ï´Ù. ÀÌ Ã³¸®±â Äڵ忡¼´Â CCommand °³Ã¼ ÅÛÇø´ ¸Å°³ º¯¼ö·Î CProvider Ŭ·¡½º¸¦ °É¸³´Ï´Ù. ÀÌ ¸Å°³ º¯¼ö´Â °ø±ÞÀÚ°¡ µ¥ÀÌÅÍ¿¡ ¾×¼¼½º ÇÏ´Â µ¥ »ç¿ë ÇÏ´Â ¹ÙÀεùÀ» ³ªÅ¸³À´Ï´Ù.
///////////////////////////////////////////////////////////////////////
/ / TestProvDlg.cpp
void CTestProvDlg::OnRun()
{
CCommandlt;CAccessor <CProvider> > Å×À̺í;
CDataSource ¿øº»;
CSession ¼¼¼Ç;
°æ¿ì (¿øº».Open("MyProvider.MyProvider.1", NULL)! = S_OK)
¹Ýȯ;
°æ¿ì (¼¼¼Ç.Open(source)! = S_OK)
¹Ýȯ;
°æ¿ì (Å×À̺íÀÔ´Ï´Ù.¿ÀÇ (¼¼¼Ç, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
¹Ýȯ;
µ¿¾È (Å×À̺íÀÔ´Ï´Ù.MoveNext() = S_OK)
{
m_ctlString1.AddString(table.szCommand);
m_ctlString2.AddString(table.szText);
}
}
󸮱â´Â °ø±ÞÀÚ¿¡¼ COM °³Ã¼¸¦ ¼¼ °³¿¡ ÇØ´ç ÇÏ´Â ¾Æ·¡, ¼¼ ¿ È£Ãâ »ç¿ë ÇÕ´Ï´Ù. °ø±ÞÀÚ¸¦ ProgID¸¦ »ç¿ë ÇÏ ¿© ã½À´Ï´Ù. ½Ã½ºÅÛ ·¹Áö½ºÆ®¸® ¶Ç´Â °ø±ÞÀÚ¿¡¼ ProgID ¸¦ °¡Á®¿Ã ¼ö rgs ÆÄÀÏ ( MyProvider.rgs ´Ü¼øÇÑ Àбâ Àü¿ë °ø±ÞÀÚ ±¸Çö¿¡ ³ª¿Í °£´ÜÇÑ °ø±ÞÀÚ¿¡ ´ë ÇÑ). °ø±ÞÀÚ ¶ó´Â ÅØ½ºÆ® ÆÄÀÏÀ» ¿°í gloo.txt , ¦¼ö ij¸®Áö ±¸ºÐ ÇÏ´Â ¹®ÀÚ¿À» Æ÷ÇÔ ÇÏ´Â ¹Ýȯ ÇÕ´Ï´Ù. ¿ÀÇ ÆÄÀÏ °æ·Î °ø±ÞÀÚ¸¦ Àü´Þ °ø±ÞÀÚ ¹®ÀÚ¿¡£
°æ¿ì (¿øº».Open("MyProvider.MyProvider.1", NULL)! = S_OK)
¹Ýȯ;
°æ¿ì (¼¼¼Ç.Open(source)! = S_OK)
¹Ýȯ;
°æ¿ì (Å×À̺íÀÔ´Ï´Ù.¿ÀÇ (¼¼¼Ç, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
¹Ýȯ
󸮱â È£Ãâ µ¥ÀÌÅ͸¦ °¡Á®¿Ã table.MoveNext ¾Æ·¡¿¡ º¸ÀÌ´Â ¹Ù¿Í °°ÀÌ ÇÕ´Ï´Ù. ´õ ¸¹Àº ÇàÀÌ ¾øÀ» °æ¿ì °ø±ÞÀÚ°¡ DB_S_ENDOFROWSET À» ¹Ýȯ ÇÏ °í ·çÇÁ Á¾·á ÇÕ´Ï´Ù. ·çÇÁ Á¦¾î ¹®À» S_OK¸¦ ¹Ýȯ °ªÀ» ºñ±³ÇÕ´Ï´Ù. DB_S_ENDOFROWSET ¼º°øÀûÀÎ ¹Ýȯ ÄÚµå °£ÁÖ µË´Ï´Ù ¶§¹®¿¡ ·çÇÁ ÄÚµå SUCCEEDED ¸ÅÅ©·Î »ç¿ë ÇÏ´Â °æ¿ì Á¾·á ÇÏÁö °Í ÀÌ´Ù¡£
µ¿¾È (Å×À̺íÀÔ´Ï´Ù.MoveNext() = S_OK)
{
m_ctlString1.AddString(table.szCommand);
m_ctlString2.AddString(table.szText);
}
¼ÒºñÀÚ ´Ü¼ø °ø±ÞÀÚ ( ´Ü¼øÇÑ Àбâ Àü¿ë °ø±ÞÀÚ ±¸Çö¿¡¼ °Ç¼³)À» Å×½ºÆ®ÇÒ Áغñ°¡ µÇ¾ú½À´Ï´Ù.
´ÙÀ½ Ç׸ñ ¿¡¼´Â´Â Çâ»ó µÈ °ø±ÞÀÚ´Â IRowsetLocate ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÏ´Â »ç¿ë Çϱâ À§ÇØ ¼ÒºñÀÚ¸¦ ¼öÁ¤ ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.