as_DBMGetNextRecordIdWithFlag

Description
ÁÖ¾îÁø ½ºÄµÀÇ ÇöÀç ·¹ÄÚµå·ÎºÎÅÍ StatusFlag(ARCHIVE_FLAG, ADD_FLAG, MODIFY_FLAG, DELETE_FLAG)°¡ setµÇ¾îÀÖ´Â ·¹Äڵ带 °Ë»öÇÏ¿©, ÇØ´ç ·¹ÄÚµåÀÇ Id¿Í °ü·Ã Á¤º¸¸¦ ±¸ÇÑ´Ù.

Syntax
DBMErr as_DBMGetNextRecordIdWithFlag(ScanId scanId, RecId* recId, P_S32 numExistFields, FieldDataInfo* fieldDataInfo, P_U8 status);

Parameters
scanId openµÈ ½ºÄµ ID
recId ´ÙÀ½ ·¹ÄÚµåÀÇ ID
numExistFields·¹Äڵ忡 ½ÇÁ¦ °ªÀÌ Á¸ÀçÇÏ´Â ÇʵåÀÇ ¼ö
fieldDataInfo ·¹Äڵ忡 ½ÇÁ¦ °ªÀÌ Á¸ÀçÇÏ´Â Çʵåµé¿¡ ´ëÇÑ Á¤º¸
status¹ÝȯµÇ´Â ·¹ÄÚµåÀÇ »óÅÂÁ¤º¸

Returns
value¼³¸í
DBM_OK ·¹ÄÚµå id¸¦ ¼º°øÀûÀ¸·Î ±¸ÇÑ °æ¿ì
(À妽º ½ºÄµÀÇ °æ¿ì´Â DBM_OK ´ë½Å DBM_OK _MATCH³ª DBM_OK_UNMATCH°¡ »ç¿ëµÈ´Ù. )
DBM_OK_MATCH ´ÙÀ½ ·¹ÄÚµå id¸¦ ¼º°øÀûÀ¸·Î ±¸ÇÑ °æ¿ì
À妽º ½ºÄµ¿¡¸¸ »ç¿ëµÇ´Â °ªÀ̸ç, ÀÌ´Â ´ÙÀ½ ·¹Äڵ尡 À妽º ½ºÄµ open½Ã ¼³Á¤ÇÑ Á¶°Ç¿¡ ¸Â´Â ·¹ÄÚµå ÀÓÀ» ÀǹÌÇÑ´Ù.
DBM_OK_UNMATCH ´ÙÀ½ ·¹ÄÚµå id¸¦ ¼º°øÀûÀ¸·Î ±¸ÇÑ °æ¿ì
À妽º ½ºÄµ¿¡¸¸ »ç¿ëµÇ´Â °ªÀ̸ç, ÀÌ´Â ´ÙÀ½ ·¹Äڵ尡 À妽º ½ºÄµ open½Ã ¼³Á¤ÇÑ Á¶°Ç¿¡ ¸ÂÁö¾Ê´Â ·¹ÄÚµå ÀÓÀ» ÀǹÌÇÑ´Ù.
DBM_NO_MORE_REC´õ ÀÌ»ó ·¹Äڵ尡 ¾ø´Â °æ¿ì
DBM_EMPTY_TABLEÅ×ÀÌºí¿¡ ·¹Äڵ尡 ÀüÇô ¾ø´Â °æ¿ì
DBM_EMPTY_CAT ÇØ´ç Category¿¡ ·¹Äڵ尡 ÀüÇô ¾ø´Â °æ¿ì
(Category¿¡ ´ëÇÑ ½ºÄµÀÎ °æ¿ì¿¡¸¸ »ç¿ëÇÏ´Â °ª)
DBM_INVALID_SCAN_IDÁÖ¾îÁø ½ºÄµ id¸¦ °®´Â ½ºÄµÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
DBM_DB_NOT_INITEDµ¥ÀÌŸº£À̽º°¡ ÃʱâÈ­µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
DBM_OUT_OF_DATE_SCANÇØ´ç ½ºÄµÀÌ »ç¿ëÇÏ´Â À妽º°¡ º¯°æµÈ °æ¿ì

Comments
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ Å×ÀÌºí¿¡ Á¸ÀçÇÏ´Â Àüü ÇÊµå ¼ö ÀÌ»óÀÇ FieldDataInfo ¹è¿­À» »ý¼ºÇؼ­ ¸Å°³º¯¼ö·Î ³Ñ°Ü¾ß ÇÑ´Ù. ±×·¯¸é ½ÇÁ¦ Á¸ÀçÇÏ´Â ¼ö ¸¸Å­ÀÇ ÇÊµå µ¥ÀÌŸ¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇØÁØ´Ù.

¸Å°³º¯¼ö fieldDataInfoÀÇ ÀڷᱸÁ¶´Â ´ÙÀ½°ú °°´Ù.
typedef struct {
  FieldId id;
  FieldDataType  type ;
  S32len ;
} FieldDataInfo ;

DBM_OK_MATCH, DBM_OK_UNMATCH´Â À妽º ½ºÄµ¿¡¸¸ »ç¿ëµÇ´Â °ªÀÌ´Ù. °Ë»öµÇ´Â ·¹Äڵ尡 ½ºÄµ open´ç½Ã ¼³Á¤µÈ key °ª°ú matchµÇ´Â ·¹ÄÚµåÀÎ °æ¿ì, DBM_OK_MATCH¸¦ ¸®ÅÏÇÏ°í, ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â DBM_OK_UNMATCH¸¦ ¸®ÅÏÇÑ´Ù.

½ºÄµÀ» OpenÇÏ°í as_DBMInsertRecord, as_DBMDeleteRecord, as_DBMSetFieldContent (À妽º ÇÊµå °ª º¯°æ)¸¦ ¼öÇàÇÑ ÈÄ¿¡´Â as_DBMGetNextRecordId ¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. À妽º°¡ º¯°æµÇ¾úÀ¸¹Ç·Î ½ºÄµ¿¡¼­ ¿Ã¹Ù¸¥ ·¹Äڵ带 ¾òÀ» ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

See Also
as_DBMGetNextRecordId

Example
TableId tableId;
ScanId scanId;
RecId recId;
DBMErr ret=DBM_OK;
S32 numFields, numExistFields; FieldDataInfo *fieldDataInfo;
FieldData fieldData;
unsigned char status;
// get tableId
ret = as_DBMOpenSeqScanTable( tableId, NULL_CAT_ID, DBM_PRIM, 0, DBM_INCR, &scanId);
if( ret < DBM_OK ) // error handling
ret = as_DBMGetNumFieldsInTable(tableId, &numFields);
...
/* allocate space for fieldDataInfo */


fieldDataInfo =(FieldDataInfo*)Lmalloc( sizeof(FieldDataInfo) * numFields );
ret=as_DBMGetNextRecordIdWithFlag( scanId, &recId, &numExistFields,
fieldDataInfo, &status)
while(ret >= DBM_OK ) {    /*memory allocation for field data and assign fieldDataInfo to fieldData*/

   ret = as_DBMGetRecordAllFields( scanId, recId, fieldId, len, fieldDataType, content );
   if( status & ( DBM_ON << SECRET_FLAG ) )
     // process for record which SECRET_FLAG is set
   if( status & ( DBM_ON << ADD_FLAG ) )
     // process for record which ADD_FLAG is set
   ...

   ret=as_DBMGetNextRecordIdWithFlag(scanId,&recId,&numExistFields, fieldDataInfo, &status)
}