as_DBMCreateTable

Description
ÁÖ¾îÁø ½ºÅ°¸¶¸¦ °¡Áø Å×À̺íÀ» »ý¼ºÇÑ´Ù.

Syntax
DBMErr as_DBMCreateTable(P_U8 tableName, S32 numFieldInfos, FieldInfo *fieldInfo, FieldId secondaryKeyFieldId, TableId* tableId );

Parameters
tableNameÅ×À̺íÀÇ À̸§. ÃÖ´ë ±æÀÌ´Â TABLE_NAME_LENÀÌ´Ù. À̸§ÀÇ ³¡Àº '\0'À¸·Î ½Äº°
numFieldInfosÇʵåÀÇ °³¼ö
fieldInfo Å×À̺íÀÇ ½ºÅ°¸¶ Á¤º¸. °¢ Çʵ忡 ´ëÇØ À̸§, ID, ŸÀÔÀ» ÀúÀå
secondaryKeyFieldIdsecondary key ÇʵåÀÇ ID. secondary key°¡ ÇÊ¿äÇÏÁö ¾ÊÀº °æ¿ì NULL_FIELD_ID·Î ÁöÁ¤ÇÏ¸é µÈ´Ù.
tableId ¼º°øÀûÀ¸·Î »ý¼ºµÈ °æ¿ì, unique tableId °ªÀ» ¹Ýȯ

Returns
value¼³¸í
DBM_OK¼º°øÀûÀ¸·Î ¼öÇàµÈ °æ¿ì
DBM_INVALID_TABLE_NAME TableNameÀÇ ±æÀÌ°¡ ÀûÀýÇÏÁö ¾ÊÀº °æ¿ì
(0 < tableNameÀÇ ±æÀÌ < TABLE_NAME_LENÀ̾î¾ßÇÔ)
DBM_TABLE_NAME_EXISTÁÖ¾îÁø Å×À̺í À̸§ÀÌ ÀÌ¹Ì Á¸ÀçÇÏ´Â °æ¿ì
DBM_INVALID_FIELD_INFO NumFieldInfos°¡ ÀûÀýÇÏÁö ¾ÊÀº °æ¿ì
(0 < numFieldInfos < = NUM_FIELDSÀ̾î¾ß ÇÔ)
0 < = Çʵå id<NUM_FIELDS°¡ ¾Æ´Ñ °æ¿ì
ÇʵåÀÇ Å¸ÀÔÀÌ ÀûÀýÇÏÁö ¾ÊÀº °æ¿ì
ÇʵåÀ̸§ÀÇ ±æÀÌ°¡ ÀûÀýÇÏÁö ¾ÊÀº °æ¿ì
(0<ÇʵåÀ̸§ ±æÀÌ<FIELD_NAME_LEN)
key ÇʵåÀÇ µ¥ÀÌŸ ŸÀÔÀÌ DBM_BLOBÀÎ °æ¿ì
Çʵå id°¡ ¼­·Î Áߺ¹µÇ´Â °æ¿ì
Çʵå À̸§ÀÌ ¼­·Î Áߺ¹µÇ´Â °æ¿ì
primary key Çʵå(id°¡ PRIM_KEYÀÎ Çʵå)°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì
secondary key Çʵåid·Î ÁöÁ¤µÈ Çʵ忡 ´ëÇÑ fieldInfo°¡ ¾øÀ»¶§
DBM_MEM_ALLOC_ERRÇÊ¿äÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´ç¹ÞÁö ¸øÇÑ °æ¿ì
DBM_DB_NOT_INITEDµ¥ÀÌŸº£À̽º°¡ ÃʱâÈ­µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
DBM_FAILµ¥ÀÌŸº£À̽º »óÅ¿¡ ¸ð¼øÀÌ ÀÖ´Â °æ¿ì

Comments
Å×À̺í À̸§Àº Àüü µ¥ÀÌŸº£À̽º¿¡¼­ uniqueÇØ¾ß ÇÑ´Ù.

¸Å°³º¯¼ö¿¡¼­ »ç¿ëµÇ´Â fieldInfoÀÇ ÀڷᱸÁ¶´Â ´ÙÀ½°ú °°´Ù.
typedef struct {
  S8name[FIELD_NAME_LEN+1];
  FieldIdid;
  FieldDataType type;
} FieldInfo;

ÇʵåÀÇ ID´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ¼³Á¤Çϴµ¥, À̶§ ´ÙÀ½ »çÇ×À» ÁöÄÑ¾ß ÇÑ´Ù.
0 : primary key field
0ºÎÅÍ 29 : BLOBÀÌ ¾Æ´Ñ Çʵå
30ºÎÅÍ 31 : BLOB Çʵå

Example
#include "dbm.h"
#include <string.h>

void main(void)
{
   DBMErr ret;
   S8 table_name[TABLE_NAME_LEN+1];
   S32 num_fields;
   FieldInfo fieldInfo;
   FieldId secondaryFieldId;
   TableId tableId;
  
   strcpy(table_name, "table1");
   fieldInfo.id = 0;
   strcpy(fieldInfo.name, "first_name");
   fieldInfo.type = DBM_STRING;
   fieldInfo.id = 1;
   strcpy(fieldInfo.name, "age");
   fieldInfo.type = DBM_INT2;
  
   secondaryFieldId = 1;
   num_fields = 2;
  
   ret = as_DBMCreateTable(table_name, num_fields, fieldInfo, secondaryFieldId, &tableId);
   if (ret == DBM_OK)
     // Success!
   else
     // Failed!
}