as_DBMGetRecordAllFields

Description
ƯÁ¤ ·¹ÄÚµåÀÇ ¸ðµç Çʵ尪À» Àд´Ù.

Syntax
DBMErr as_DBMGetRecordAllFields(ScanId scanId, RecId recId, int numExistFields, FieldData *fieldData);

Parameters
scanId½ºÄµ ID
recId·¹ÄÚµåÀÇ ID
numExistFields·¹Äڵ忡 Á¸ÀçÇÏ´Â ÇʵåÀÇ °³¼ö
filedDataFieldDataÀÇ ¹è¿­·Î, ·¹ÄÚµå ÇʵåµéÀÇ °ªÀ» ¾ò¾î¿È

Returns
value¼³¸í
DBM_OK¼º°øÀûÀ¸·Î ¼öÇàµÈ °æ¿ì
DBM_INVALID_SCAN_IDÁÖ¾îÁø ½ºÄµ id¸¦ °®´Â ½ºÄµÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
DBM_INVALID_REC_IDÁÖ¾îÁø ·¹ÄÚµå id¸¦ °®´Â ·¹Äڵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
DBM_INVALID_FIELD_INFOnumExistFields°¡ ½ÇÁ¦ FieldÀÇ °³¼öº¸´Ù Àû°Ô ³Ñ¾î¿ÔÀ» °æ¿ì
DBM_INVALID_FIELD_LEN lenÀÌ ÀûÀýÇÏÁö ¾ÊÀº °æ¿ì
( len>=½ÇÁ¦ ÇÊµå ±æÀÌ)
DBM_EMPTY_FIELD·¹Äڵ忡 ÇØ´ç Çʵ尪ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§
DBM_DB_NOT_INITED µ¥ÀÌŸº£À̽º°¡ ÃʱâÈ­µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
DBM_FAILµ¥ÀÌŸº£À̽º ³»ºÎ ¿À·ù

Comments
as_DBMGetNextRecordId, as_DBMGetPrevRecordId ¿¡¼­ ¾òÀº Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© numExistFields¸¦ ±¸ÇÏ¿©, fieldData¸¦ À§ÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ ÈÄ À§ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇؾßÇÑ´Ù.

BLOB Çʵ嵵 ´Ù¸¥ Çʵå¿Í ¸¶Âù°¡Áö·Î Á÷Á¢ Çʵ尪À» content¿¡ ³Ö¾î¼­ ¹ÝȯÇÑ´Ù.

¹®ÀÚ¿­ ¶Ç´Â BLOB ÇʵåÀÇ °æ¿ì, ÀÀ¿ë ÇÁ·Î±×·¥Àº as_DBMGetRecFieldInfoÇÔ¼ö¸¦ ÀÌ¿ëÇϰųª as_DBMGetNextRecordId, as_DBMGetPrevRecordId ¿¡¼­ ¾òÀº Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© fieldData[i].content¿¡ ´ëÇÑ ¸Þ¸ð¸®¸¦ ¹Ì¸® ÇÒ´çÇØÁà¾ß ÇÑ´Ù.

Example
/* Get scanId and recId. See the example of as_DBMDeleteFieldContent */
DBMErr ret;
FieldId fieldId = 1;
FieldData *fieldData;
FieldDataInfo fieldDataInfo[NUM_FIELDS];
S32 numFields;
S32 i;

ret = as_DBMGetRecFieldInfo(scanId, recId, &numFields, fieldDataInfo);
if (ret < DBM_OK) // error handling

fieldData = (FieldData*)malloc(sizeof(FieldData)*numFields);
for (i=0; i < numFields; i++)
{
   if (fieldDataInfo[i].type == DBM_STRING || fieldDataInfo[i].type == DBM_BLOB)
     fieldData[i].content = (char*)malloc(sizeof(char)*fieldDataInfo[i].len);
}

ret = as_DBMGetRecordAllFields(scanId, recId, numFields, fieldData);
if (ret < DBM_OK) // error handling
...