TN043: RFX ·çƾ

ÀÌ ³ëÆ® ·¹ÄÚµå Çʵå RFX (±³È¯) ¾ÆÅ°ÅØó¿¡ ¼³¸í ÇÕ´Ï´Ù. ±×°ÍÀº ¶ÇÇÑ RFX_ ÇÁ·Î½ÃÀú¸¦ ÀÛ¼º ÇÏ´Â ¹æ¹ýÀ» ¼³¸í ÇÕ´Ï´Ù.

·¹ÄÚµå ÇÊµå ±³È¯ÀÇ °³¿ä

¸ðµç recordset Çʵå ÇÔ¼ö´Â c + + ÄÚµå¿Í ÇÔ²² ¿Ï·á µË´Ï´Ù. °Å±â¿¡ Ưº° ÇÑ ÀÚ¿ø ¶Ç´Â ¸¶¹ýÀÇ ¸ÅÅ©·Î. ¸ÞÄ¿´ÏÁòÀÇ ¸¶À½ ¸ðµç ÆÄ»ýµÈ ·¹ÄÚµå ÁýÇÕ Å¬·¡½º¿¡¼­ ÀçÁ¤ÀÇ ÇØ¾ß ÇÏ´Â °¡»ó ÇÔ¼öÀÔ´Ï´Ù. ±×°ÍÀº Ç×»óÀÌ ¾ç½Ä¿¡¼­ ¹ß°ß:

void CMySet::DoFieldExchange (CFieldExchange * pFX)
{
  //{{AFX_FIELD_MAP(CMySet)
  lt; recordset exchange Çʵå Çü½Ä ÀüÈ­ >
  < recordset exchange ÇÔ¼ö È£Ãâ >
  //}}AFX_FIELD_MAP
}

Ưº° ÇÑ Çü½Ä AFX ÀÇ°ß Çã¿ë Classwizard¸¦ ã¾ÆÀÌ ÇÔ¼ö ³»ÀÇ Äڵ带 ÆíÁý ÇÕ´Ï´Ù. ÄÚµå ¸¶¹ý»ç¿Í ȣȯ µÇÁö ¾Ê´Â Ư¼ö Çü½Ä ÀÇ°ßÀÇ ¿ÜºÎ ¹èÄ¡ µÇ¾î¾ß ÇÕ´Ï´Ù.

À§ÀÇ ¿¹¿¡¼­ lt; recordset_exchange_field_type_call > ÇüÅÂÀÔ´Ï´Ù:

pFX gt;SetFieldType(CFieldExchange::outputColumn)(&G)

±×¸®°í lt; recordset_exchange_function_call > ÇüÅÂÀÔ´Ï´Ù:

RFX_Custom (pFX, "Col2", m_Col2)

´ëºÎºÐÀÇ RFX_ ÇÔ¼ö 3°¡ Àμö À§¿¡ Ç¥½Ã µÈ °Í°ú °°ÀÌ ÀÖÁö¸¸ ÀϺΠ(¿¹: RFX_Text ¹× RFX_Binary)´Â Ãß°¡ ¼±ÅÃÀû Àμö¡£

Çϳª ÀÌ»óÀÇ RFX_ °¢ DoDataExchange ÇÔ¼ö¿¡ Æ÷ÇÔ µÉ ¼ö ÀÖ½À´Ï´Ù.

'Afxdb.h' ¸ðµç recordset ÇÊµå ±³È¯ ·çƾÀÇ MFC¿Í ÇÔ²² Á¦°ø µÈ ¸ñ·Ï¿¡ ´ë ÇÑ ÂüÁ¶¡£

Recordset Çʵå ÀüÈ­´Â CMySet Ŭ·¡½º¿¡ ´ë ÇÑ ÇÊµå µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¸Þ¸ð¸® À§Ä¡ (ÀϹÝÀûÀ¸·Î µ¥ÀÌÅÍ ¸â¹ö) µî·Ï ¹æ¹ý¡£

³ëÆ®

Recordset Çʵå ÇÔ¼ö´Â CRecordset Ŭ·¡½º ¿¡¼­¸¸ ÀÛµ¿ Çϵµ·Ï ¼³°è µÇ¾ú½À´Ï´Ù. ±×µéÀº ´Ù¸¥ MFC Ŭ·¡½º¿¡¼­ ÀϹÝÀûÀ¸·Î »ç¿ëÇÒ ¼ö¡£

µ¥ÀÌÅÍÀÇ Ãʱ⠰ª ¼³Á¤ µÈ ºí·Ï¿¡ ÀϹÝÀûÀ¸·Î Ç¥ÁØ c + + »ý¼ºÀÚ¿¡¼­ //{{AFX_FIELD_INIT(CMylSet) ¹× //}}AFX_FIELD_INIT ´ñ±Û¡£

°¢ RFX_ ÇÔ¼ö¿¡¼­ Çʵå Çʵå ÆíÁýÀ» À§ÇÑ Áغñ¿¡ º¸°ü ÇʵåÀÇ ´õ·¯¿î »óÅ ¹Ýȯ¿¡ À̸£±â±îÁö ´Ù¾ç ÇÑ ÀÛ¾÷À» Áö¿ø ÇØ¾ß ÇÕ´Ï´Ù.

(¿¹¸¦ µé¾î SetFieldNull, IsFieldDirty) DoFieldExchange ¸¦ È£Ãâ ÇÏ´Â °¢ ÇÔ¼ö´Â DoFieldExchange ¸¦ È£Ãâ ÀÚü ÃʱâÈ­¡£

±×°ÍÀº ¾î¶»°Ô ÀÛµ¿ Çմϱî?

·¹ÄÚµå ÇÊµå ±³È¯ »ç¿ë Çϱâ À§Çؼ­´Â ´ÙÀ½À» ÀÌÇØ ÇØ¾ß ÇÏ´Â °ÍÀº ¾ø½À´Ï´Ù. ±×·¯³ª ÀÌÇØ ÇÏ¸é µµ¿òÀÌ µÉ °ÍÀÔ´Ï´ÙÀÌ Àå¸é µÚ¿¡ ÀÛµ¿ ÇÏ´Â ¹æ¹ý ´ç½ÅÀÇ ÀÚ½ÅÀÇ exchange ÇÁ·Î½ÃÀú¸¦ ÀÛ¼º ÇÏ´Â,¡£

DoFieldExchange ¸â¹ö ÇÔ¼ö¸¦ »ç¿ë Çϸé Serialize ¸â¹ö ÇÔ¼ö ó·³ ¸¹Áö´Â-Á¡Á¡ ¶Ç´Â ¼³Á¤ µ¥ÀÌÅÍ/¿¡¼­/Ŭ·¡½ºÀÇ È¸¿ø µ¥ÀÌÅÍ (ÀÌ °æ¿ì ¿­¿¡ ODBC Äõ¸® °á°ú¿¡¼­) ¿ÜºÎ Çü½Ä¿¡¼­ ÇÏ´Â ÀÛ¾÷À» ´ã´ç ÇÕ´Ï´Ù. PFX ¸Å°³ º¯¼ö µ¥ÀÌÅ͸¦ ±³È¯ ÇÏ °í ÄÁÅؽºÆ® À̸ç CArchive ¸Å°³ º¯¼ö CObject::Serialize¸¦ ºñ½ÁÇÕ´Ï´Ù. PFX ( CFieldExchange °³Ã¼) ºñ½ÁÇÑ, ÇÏÁö¸¸ CArchive ¹æÇâ ÀϹÝÈ­ Ç÷¡±×´Â ÀÛ¾÷ Ç¥½Ã±â¸¦ ÇÏ°íÀÖ´Ù. RFX ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷À» Áö¿ø Çϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.

»ç¿ëÀÚ È®Àå

¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ±âº» RFX ¸ÞÄ¿´ÏÁòÀ» È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀº ÇÒ ¼ö ÀÖ¾î¿ä

¸Þ¸ðnbsp;??ÀÌ·¯ÇÑ ÄÚµå Classwizard´Â ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ¹× Ư¼ö Çü½Ä ÀÇ°ßÀÇ ¿ÜºÎ¸¸ »ç¿ë ÇÑ´Ù(&N)¡£

»ç¿ëÀÚ ÁöÁ¤ RFX¸¦ ÀÛ¼º

ÀÚ½ÅÀÇ »ç¿ëÀÚ ÁöÁ¤ RFX ÇÔ¼ö¸¦ ÀÛ¼º ÇÏ·Á¸é ±âÁ¸ RFX ÇÔ¼ö¸¦ º¹»ç ÇÏ °í ÀÚ½ÅÀÇ ¸ñÀûÀ» ¼öÁ¤ ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. º¹»çÇÒ ¿À¸¥ÂÊ RFX¸¦ ¼±Åà ÇÏ¸é ±ÍÇÏÀÇ Á÷¾÷ ÈξÀ ½±°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀϺΠRFX ÇÔ¼ö´Â º¹»ç¸¦ °áÁ¤ÇÒ ¶§ °èÁ¤À¸·Î ¼öÇà ÇØ¾ß ÇÏ´Â ¸î °¡Áö °íÀ¯ÇÑ ¼Ó¼º¡£

RFX_Long ¹× RFX_Int:

À̵éÀº ´Ü¼øÇÑ RFX ÇÔ¼öÀÔ´Ï´Ù. µ¥ÀÌÅÍ °ª¿¡´Â ¾î¶² Ưº° ÇÑ Çؼ®, ÇÊ¿ä ÇÏÁö ¾Ê½À´Ï´Ù ¹× µ¥ÀÌÅÍ Å©±â °íÁ¤¡£

RFX_Single ¹× RFX_Double:

RFX_Long ¹× RFX_Int À§ÀÇ Ã³·³ ÀÌ·¯ÇÑ ±â´ÉÀº °£´Ü ÇÏ °í ¸¸µé ¼ö ÀÖ´Â ±âº» ±¸ÇöÀÇ ±¤¹üÀ§ ÇÏ °Ô »ç¿ë ÇÕ´Ï´Ù. ±×·¯³ª ±×µéÀº¿¡ ÀúÀå µË´Ï´Ù dbflt.cpp ´ë½Å dbrfx.cpp,, ±×µéÀº ¸í½ÃÀûÀ¸·Î ÂüÁ¶ ÇÏ´Â °æ¿ì¿¡ Æ÷ÀÎÆ® ¶óÀ̺귯¸®¸¦ ºÎµ¿ ·±Å¸ÀÓ ·Îµå¸¦ »ç¿ë ÇÏ·Á¸é¡£

RFX_Text ¹× RFX_Binary:

ÀÌ·¯ÇÑ µÎ °¡Áö ±â´É ¹®ÀÚ¿­/ÀÌÁø Á¤º¸¸¦ ÀúÀå ÇÏ´Â Á¤Àû ¹öÆÛ ¹Ì¸® ÇÒ´ç ÇÏ °í µî·Ï ÇÏ´Â ´ë½Å ODBC Sqlbindcol¿Í ÀÌ·¯ÇÑ ¹öÆÛ¸¦ µî·Ï ÇØ¾ß ÇÕ´Ï´Ù amp; °ª. ¶§¹®¿¡ ÀÌ·¯ÇÑ µÎ ÇÔ¼ö´Â Ư¼ö °æ¿ì ÄÚµåÀÇ ¸¹Àº(&A)¡£

RFX_Date:

ODBC´Â ±×µéÀÇ ÀÚ½ÅÀÇ TIMESTAMP_STRUCT µ¥ÀÌÅÍ ±¸Á¶¿¡ ³¯Â¥ ¹× ½Ã°£ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù. µ¿ÀûÀ¸·ÎÀÌ ÇÔ¼ö´Â ³¯Â¥ ½Ã°£ µ¥ÀÌÅÍ ¼Û¼ö½Å¿¡ ´ë ÇÑ "ÇÁ·Ï½Ã"·Î TIMESTAMP_STRUCTÀ» ÇÒ´ç ÇÕ´Ï´Ù. ´Ù¾ç ÇÑ ÀÛ¾÷ c + + CTime °³Ã¼¿Í TIMESTAMP_STRUCT ÇÁ·Ï½Ã °£ÀÇ ³¯Â¥ ¹× ½Ã°£ Á¤º¸¸¦ Àü¼Û ÇØ¾ß ÇÕ´Ï´Ù. ¸»ÇÒ ÇÊ¿äµµ ¾øÀÌ,ÀÌÀÌ ±â´ÉÀ» »ó´çÈ÷ º¹Àâ ÇÏÁö¸¸, ±×°ÍÀº µ¥ÀÌÅÍ Àü¼Û¿¡ ´ë ÇÑ ÇÁ·Ï½Ã¸¦ »ç¿ë ÇÏ´Â ¹æ¹ýÀÇ ÁÁÀº ¿¹¡£

RFX_LongBinary:

ÀÌ°ÍÀº À¯ÀÏÇÑ Å¬·¡½º ¶óÀ̺귯¸® RFX ÇÔ¼ö´Â µ¥ÀÌÅ͸¦ º¸³»°í ¹Þ´Â µ¥ ¿­ ¹ÙÀεùÀ» »ç¿ë ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ÇÔ¼ö BindFieldToColumn ÀÛ¾÷À» ¹«½Ã ÇÏ °í ´ë½Å, ¼öÁ¤ ÀÛ¾÷ µ¿¾È µé¾î¿À´Â SQL_LONGVARCHAR ¶Ç´Â SQL_LONGVARBINARY µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ÀúÀå¼Ò¸¦ ÇÒ´ç ´ÙÀ½ ÇÒ´ç µÈ ½ºÅ丮Áö·Î °ªÀ» °Ë»ö ÇÏ·Á¸é SQLGetData È£ÃâÀ» ¼öÇà. µ¥ÀÌÅÍ °ª µ¥ÀÌÅÍ ¼Ò½º (Áï NameValue ¹× °ª ÀÛ¾÷)¿¡ ´Ù½Ã º¸³¾ Áغñ¸¦ ÇÒ ¶§ÀÌ ÇÔ¼ö´Â ODBCÀÇ DATA_AT_EXEC ±â´ÉÀ» »ç¿ë ÇÕ´Ï´Ù. SQL_LONGVARBINARY ¹× SQL_LONGVARCHARs ÀÛ¾÷¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ±â¼ú ³ëÆ® 45 ÂüÁ¶¡£

RFX_ ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ¶§ CFieldExchange::Default ¸¦ »ç¿ë ÇÏ ¿© ÁÖ¾îÁøµÈ ÀÛ¾÷À» ±¸ÇöÇÒ ¼ö Á¾Á¾ ÇÕ´Ï´Ù. ÀÛ¾÷¿¡ ´ë ÇÑ ±âº» ±¸Çö Á» ºÁ. ±×°ÍÀº ´ç½ÅÀÌ RFX_ ÇÔ¼ö¿¡ ÀÛ¼º ÇÏ´Â °ÍÀÌ ÀÛ¾÷À» ¼öÇà ÇÏ´Â °æ¿ì¿¡ À§ÀÓÇÒ ¼ö ÀÖ½À´Ï´Ù¿¡¼­ CFieldExchange::Default. Dbrfx.cpp¿¡¼­ CFieldExchange::Default ¸¦ È£ÃâÀÇ ¿¹¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.

±×°ÍÀº RFX ÇÔ¼ö ½ÃÀÛ IsFieldType ¸¦ È£Ãâ ÇÏ °í FALSE¸¦ ¹Ýȯ ÇÏ´Â °æ¿ì Áï½Ã ¹Ýȯ ÇÏ´Â °ÍÀÌ Áß¿ä ÇÕ´Ï´Ù. ÀÌ ¸ÞÄ¿´ÏÁò ( outputColumn BindParam ÀüÈ­)¿Í °°Àº outputColumns, ±×¸®°í ¹Ý´ë·Î ¼öÇà µÇÁö ¸Å°³ º¯¼ö ÀÛ¾÷À» À¯Áö ÇÕ´Ï´Ù. ¶ÇÇÑ, IsFieldType ÀÚµ¿À¸·Î °è¼Ó ÃßÀûÀÇ outputColumns (m_nFields) ¹× params (m_nParams)ÀÇ °³¼ö¡£

±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)

Index