1. Çü½Ä
Çü½Ä1) result= msqlFetchField(mres_ptr)
Çü½Ä2) result= msqlFetchField(mres_ptr, field_no)
2. ±â´É: ÀÎÀÚ mres_ptrÀÇ Ç׸ñ¿¡ ´ëÇÑ Á¤º¸(À̸§, ¼Ò¼Ó Å×À̺í, ÀÚ·áÇü, Å©±â,
Ç÷¡±×)¸¦ °´Ã¼·Î ¾ò´Â´Ù.
3. ¼³¸í
(1) ÀÌ ÇÔ¼ö´Â mSQL¿¡¼ Áö¿øÇÏ´Â ÇÔ¼öÀ̸ç ÇÔ¼ö¸íÀº mSQLÀÇ C API¿Í µ¿ÀÏÇÏ´Ù.
(2) ÀÎÀÚ mres_ptrÀº mSQL result Æ÷ÀÎÅÍÀ̸ç msqlStoreResult()ÇÔ¼ö³ª ±âŸ
°á°ú¸¦ ÀúÀåÇÏ´Â ÇÔ¼ö¿¡ ÀÇÇÏ¿© ¾òÀº °ªÀ̾î¾ß Çϰí mSQL result Æ÷ÀÎÅͰ¡
¾Æ´Ï¸é ¿¡·¯ 󸮵Ǹç, ÀÌ¹Ì ÇØÁ¦µÈ mSQL result Æ÷ÀÎÅÍÀÏ ¶§¿¡´Â °æ°í
¸Þ½ÃÁö¸¦ Ãâ·ÂÇϰí result¿¡ -1 ÀÇ °ªÀ» µÇµ¹¸°´Ù.
(3) Çü½Ä1)Àº Çʵå Ä¿¼ À§Ä¡, Çü½Ä2)´Â field_no À§Ä¡ÀÇ Ç׸ñ Á¤º¸¸¦ ¾ò´Â´Ù.
(4) Çü½Ä2)ÀÇ ÀÎÀÚ field_no´Â Ç׸ñ¿¡ ´ëÇÑ ¼ø¹ø( 0 ºÎÅÍ Ç׸ñ°³¼ö - 1 )À̸ç ÀÌ
°ªÀÌ ¹®ÀÚ¿ÀÌ°í ¼öÄ¡·Î º¯È¯µÉ ¼ö ¾øÀ» ¶§´Â ¿¡·¯ 󸮵ȴÙ.
(5) Çü½Ä2)ÀÇ ÀÎÀÚ field_no°¡ 0 º¸´Ù À۰ųª ¶Ç´Â Ç׸ñÀÇ °³¼öº¸´Ù Å©°Å³ª °°À¸
¸é Á¤¼ö -1 ÀÌ result¿¡ µ¹·ÁÁø´Ù.
(6) À§ÀÇ ¼³¸í(2)³ª ¼³¸í(5)ÀÇ °æ¿ì°¡ ¾Æ´Ï¸é ¼³¸í(7)ÀÇ ¸â¹ö º¯¼ö¸¦ Áö´Ñ °´Ã¼°¡
result¿¡ µ¹·ÁÁø´Ù.
(7) °á°ú°ª °´Ã¼ÀÎ resultÀÇ ¸â¹öº¯¼ö ¼³¸í
==========================================================
°´Ã¼¿Í ¸â¹öº¯¼ö¸í ÀÚ·áÇü ¼³ ¸í
------------------ -------- ------------------------------
result.name (¹®ÀÚ¿) Ç׸ñÀÇ À̸§
result.table (¹®ÀÚ¿) ¼Ò¼Ó Å×À̺í À̸§
result.type (¹®ÀÚ¿) Ç׸ñÀÇ ÀÚ·áÇü
result.type_value (Á¤¼ö) Ç׸ñÀÇ ÀÚ·áÇüÀ» ÀǹÌÇÏ´Â ¼öÄ¡
result.length (Á¤¼ö) Ç׸ñÀÇ Å©±â(bytes)
result.flags (Á¤¼ö) Ç׸ñÀÇ Ç÷¡±×
==========================================================
1) result.type_valueÀÇ °ª ¼³¸í(mSQLÀÇ ¹öÀü¿¡ µû¶ó Â÷À̰¡ ÀÖÀ» ¼ö ÀÖÀ½)
===================================================
°ª ÀÚ·áÇü | °ª ÀÚ·áÇü | °ª ÀÚ·áÇü
---- ---------- | ---- ---------- | ---- ----------
1 int | 6 text | 253 index
2 char | 7 date | 254 sysvar(?)
3 real | 8 uint | 255 any(?)
4 ident | 9 money |
5 null | 10 time |
===================================================
2) result.flagsÀÇ ¼³¸í(mSQLÀÇ ¹öÀü¿¡ µû¶ó Â÷À̰¡ ÀÖÀ» ¼ö ÀÖÀ½)
=======================================
result.flagsÀÇ bit °ª flagÀÇ ÀǹÌ
----------------------- ---------------
0 0 0 0 0 0 0 1 (1) NOT NULL
0 0 0 0 0 0 1 0 (2) UNIQUE
=======================================
4. »ç¿ë¿¹#1
msql= msqlConnect(NULL); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(msql==MSQL_ERR) { print("mSQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(msqlSelectDB(msql, "welhelp")==MSQL_ERR) // welhelp database ¼±ÅÃ
{
print("welhelp database ¼±Åà ¿¡·¯!\n"); return(-1);
}
mres= msqlListFields(msql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(mres==MSQL_ERR) { print("addr error!\n"); return(-1); }
fd= msqlFetchField(mres, 1); // µÎ¹øÂ° Ç׸ñ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò´Â´Ù.
printf("Ç׸ñ: %s, Å×À̺í: %s, ÀÚ·áÇü: %s [%d], Å©±â: %lu, Ç÷¡±×: %X\n",
fd.name, fd.table, fd.type, fd.type_value, fd.length, fd.flags);
msqlFreeResult(mres);
msqlClose(msql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
Ç׸ñ: age, Å×À̺í: addr, ÀÚ·áÇü: int [1], Å©±â: 4, Ç÷¡±×: 0
5. »ç¿ë¿¹#2
msql= msqlConnect(NULL); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(msql==MSQL_ERR) { print("mSQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(msqlSelectDB(msql, "welhelp")==MSQL_ERR) // welhelp database ¼±ÅÃ
{
print("welhelp database ¼±Åà ¿¡·¯!\n"); return(-1);
}
mres= msqlListFields(msql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(mres==MSQL_ERR) { print("addr error!\n"); return(-1); }
msqlFieldSeek(mres, 2); // 3¹øÂ° Ç׸ñÀ¸·Î Çʵå Ä¿¼¸¦ À̵¿ÇÑ´Ù.
fd= msqlFetchField(mres); // Çʵå Ä¿¼ÀÇ Ç׸ñ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò´Â´Ù.
printf("Ç׸ñ: %s, Å×À̺í: %s, ÀÚ·áÇü: %s [%d], Å©±â: %lu, Ç÷¡±×: %X\n",
fd.name, fd.table, fd.type, fd.type_value, fd.length, fd.flags);
msqlFreeResult(mres);
msqlClose(msql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
Ç׸ñ: address, Å×À̺í: addr, ÀÚ·áÇü: char [2], Å©±â: 120, Ç÷¡±×: 0
6. »ç¿ë¿¹#3
msql= msqlConnect(NULL); // localhost¸¦ ¿¬°áÇÑ´Ù.
if(msql==MSQL_ERR) { print("mSQL ¼¹ö ¿¬°á ¿¡·¯!\n"); return(-1); }
if(msqlSelectDB(msql,"welhelp")==MSQL_ERR) { print("DB Err!"); return(-1); }
mres= msqlListFields(msql, "addr"); // addr Å×À̺íÀÇ Ç׸ñ ¸®½ºÆ® ¾ò±â
if(mres==MSQL_ERR) { print("addr error!\n"); return(-1); }
while( (fd= msqlFetchField(mres))!=MSQL_ERR )
{
printf(" Ç׸ñ: %s, Å×À̺í: %s, ÀÚ·áÇü: %s [%d], Å©±â: %lu, flag: %X\n",
fd.name, fd.table, fd.type, fd.type_value, fd.length, fd.flags);
}
msqlFreeResult(mres); msqlClose(msql);
------------------------------ [ Ãâ·Â°á°ú ] ------------------------------
Ç׸ñ: name, Å×À̺í: addr, ÀÚ·áÇü: char [2], Å©±â: 10, flag: 1
Ç׸ñ: age, Å×À̺í: addr, ÀÚ·áÇü: int [1], Å©±â: 4, flag: 0
Ç׸ñ: address, Å×À̺í: addr, ÀÚ·áÇü: char [2], Å©±â: 120, flag: 0
|