DBMOpenSeqScanCategoryWithCursor

Description
ÀÌÀü¿¡ È£ÃâµÈ DBMGetOffset ÇÔ¼öÀÇ ·¹ÄÚµå·ÎºÎÅÍ ¾ò¾îÁø À§Ä¡¿¡¼­ ½ÃÀÛÇϴ ƯÁ¤ Category¿¡ ¼ÓÇÏ´Â ·¹ÄÚµåµéÀ» Àбâ À§ÇÑ ½ºÄµ °ü¸®ÀÚ¸¦ ÃʱâÈ­ÇÑ´Ù.

Syntax
DBMErr DBMOpenSeqScanCategoryWithCursor(TableId tableId, CatId catId, IndexFlag indexFlag, RecId recId, RecOrder recOrder, ScanId* scanId);

Parameters
tableId Å×À̺íÀÇ ID
catId Category ID
indexFlag primary key Çʵå¿Í secondary key Çʵå Áß ³í¸®Àû ¼ø¼­ÀÇ ±âÁØÀÌ µÇ´Â Çʵ带 ¼±ÅÃÇÏ´Â Ç÷¡±×
DBM_PRIM : primary key Çʵå
DBM_SEC : secondary key Çʵå
recId GetOffsetÀ» ¼öÇàÇÑ recId¿Í µ¿ÀÏÇÑ °ª
recOrderFlag ·¹ÄÚµåÀÇ °Ë»ö ¼ø¼­
DBM_INCR : increasing order
DBM_DECR : decreasing order
scanIdopenµÈ ½ºÄµ ID

Returns
value¼³¸í
DBM_OK¼º°øÀûÀ¸·Î ¼öÇàµÈ °æ¿ì
DBM_TOO_MANY_SCANSÀÌ¹Ì openµÈ ½ºÄµÀÇ ¼ö°¡ NUM_SCANSÀÎ °æ¿ì
DBM_INVALID_TABLE_IDÁÖ¾îÁø Å×À̺í id¸¦ °®´Â Å×À̺íÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
DBM_INVALID_CAT_ID ÁÖ¾îÁø Category id¸¦ °®´Â Category°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
DBM_DB_NOT_INITEDµ¥ÀÌŸº£À̽º°¡ ÃʱâÈ­µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
DBM_INVALID_RECID GetOffsetÀ» ¼öÇàÇÑ recId¿Í ´Ù¸¥ °æ¿ì
DBM_SECONDARY_INDEX_NOT_EXISTÅ×ÀÌºí¿¡ secondary index°¡ ¾ø´Âµ¥µµ indexFlag°¡ DBM_SECÀÎ °æ¿ì

Comments
Ç×»ó DBMGetOffset API¸¦ È£ÃâÇÑ ÈÄ, ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

DBMGetOffsetÀ» ÇÑ ÈÄ¿¡ ·¹ÄÚµåÀÇ Ãß°¡/»èÁ¦/¼öÁ¤ µîÀÇ ÀÛ¾÷À» ÇÏ°í ÀÌ API¸¦ ÀÌ¿ëÇÏ´Â °æ¿ì, À߸øµÈ °á°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù.
DBMGetOffset, DBMOpenSeqScanCategory ÇÔ¼ö¿¡¼­ ½ºÄµÀ» ¿ÀÇÂÇÏ°í ·¹Äڵ忡 ´ëÇØ ºü¸¥ Á¢±ÙÀ» Áö¿øÇϱâ À§ÇØ »ç¿ë.

See Also
DBMGetOffset, DBMOpenSeqScanTableWithCursor, DBMGetNextRecordId

Example

  TableId tableId; ScanId scanId;
  RecId recId; DBMErr ret=DBM_OK;
  int numFields, numExistFields; FieldDataInfo fieldDataInfo;
  IndexFlag indexFlag = DBM_PRIM;
  CatId catId;
  int offset = 10;
  RecOrder recOrder=DBM_INCR;
  
  // Get tableId, catId
  // Get record Id
  ret = DBMGetOffset( tableId, catId, indexFlag, recId, recOrder, &offset );
  if( ret < DBM_OK )
     // error handling
  ret = DBMOpenSeqScanCategoryWithCursor( tableId, catId, indexFlag, recId, recOrder, &scanId);
  if( ret < DBM_OK ) // error handling
  numFields = NUM_FIELDS;
  /* allocate space for fieldDataInfo */
  fieldDataInfo =(FieldDataInfo*)Lmalloc( sizeof(FieldDataInfo) * numFields );
  while( (ret = DBMGetNextRecordId( scanId, &recId, &numExistFields, fieldDataInfo) >= DBM_OK ) {
     ...
  }