2.4 °Ë»ö°á°ú Á¢±Ù

GET_DOCUMENTS_FROM_RESULT
GET_DOCUMENTS_WITH_IDS
GET_DOCUMETS_WITH_PRIMARY_KEY
GET_DOCUMENT_ID_WITH_DOCUMENT
¹®¼­ ¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃ ¹æ¹ý

Description
¹®¼­¸¦ °Ë»öÇÑ °æ¿ì¿¡´Â ¹®¼­½Äº°ÀÚ¸¦ ȹµæÇÒ ¼ö ÀÖÀ¸¹Ç·Î À̸¦ ÀÌ¿ëÇÏ¿© ¹®¼­¿¡ Á¢±ÙÇÒ ¼ö ÀÖÁö¸¸, ¹®¼­½Äº°ÀÚ¸¦ ¸ð¸£´Â °æ¿ì "±âº»Å°"¸¦ ÀÌ¿ëÇÏ¿© ¹®¼­¿¡ Á¢±ÙÇÏ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ¶ÇÇÑ, Å×À̺íÀÇ Ã³À½ºÎÅÍ ¼øÂ÷ÀûÀÎ Á¢±Ù¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

InParameter

int direction; [ÀоîµéÀÏ ¹æÇâ : FIRST_NODE | LAST_NODE | PREVIOUS_NODE | NEXT_NODE]
string primary_key; [±âº»Å° : FIRST_NODE¿Í LAST_NODEÀÎ °æ¿ì¿¡´Â ÁöÁ¤ÇÒ Çʿ䰡 ¾ø´Ù]
unsigned int counter; [°¡Á®¿Ã ¹®¼­ ¼ö]
vector table_namelist; [Å×À̺í À̸§ : µÎ¹øÂ° ÀÌÈÄ·Î ÁöÁ¤µÈ Å×À̺íÀº ¹«½ÃµÈ´Ù]
vector section_namelist; [°¡Á®¿Ã ¼½¼Ç : ALL_SECTIONS¸¦ »ç¿ëÇÏ¸é ¸ðµç ¼½¼ÇÀÌ ÁöÁ¤µÊ]

OutParameter

vector documents; [°¡Á®¿Â ¹®¼­(µé)]
long unsigned int service_time; [½ÇÇà½Ã°£]

Example

    vector table_namelist;  // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    vector section_namelist;    // °¡Á®¿Ã ¼½¼Ç¸í

    // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    table_namelist.push_back("blue01");
    
    // ¼½¼Ç ÁöÁ¤
    //section_namelist.push_back(ALL_SECTIONS);
    section_namelist.push_back("AN");

    // ¿äûÀ» ó¸®ÇÒ Å¬·¡½º¸¦ »ý¼º
    // »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö·Î ó¸®ÇÒ DB ¼­ºñ½ºÀÇ ÁÖ¼Ò¿Í Æ÷Æ®¹øÈ£¸¦ ÀÔ·Â
    ClientLIB clientLib(SERVER_IP, SERVER_PORT);
    
    Cparameter_t p_in, p_out;       // ¸Å°³º¯¼ö Ŭ·¡½º ¼±¾ð 

    /************************** ù¹øÂ° 5°³¸¦ ÀÐ¾î µéÀÓ **************************/
    p_in.table_namelist = table_namelist;   // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    p_in.direction = FIRST_NODE;        // FIRST_NODE | LAST_NODE | PREVIOUS_NODE | NEXT_NODE
    //p_in.primary_key = "";            // FIRST_NODE¿Í LAST_NODE¿¡¼­´Â ÁöÁ¤ÇÒ ÇÊ¿ä ¾øÀ½
    p_in.counter = 5;                   // 5°³ ÀоîµéÀÓ
    p_in.section_namelist = section_namelist;

    // ù¹øÂ° ´Ù¼¸ ¹®¼­¸¦ ÀоîµéÀÓ
    RedirectStdoutInit();   // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
    int ret_val = clientLib.Request(GET_DOCUMENTS_WITH_PRIMARY_KEY, p_in, p_out);
    RedirectStdoutClose();
    if (ret_val != 0) {
        cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
        return -1;
    }

    /************************** µÎ¹øÂ° 5°³¸¦ ÀÐ¾î µéÀÓ **************************/
    p_in.table_namelist = table_namelist;   // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤(À§¿¡¼­ ÁöÁ¤ÇßÀ¸¹Ç·Î ¿©±â¼± ÁöÁ¤¾ÈÇØµµ µÊ)
    p_in.direction = NEXT_NODE;     // FIRST_NODE | LAST_NODE | PREVIOUS_NODE | NEXT_NODE
    p_in.primary_key = p_out.documents[4].sections[0].section_value;    // À§¿¡¼­ ÀоîµéÀÎ ¸¶Áö¸· ·¹ÄÚµåÀÇ PK¸¦ ÁöÁ¤
    p_in.counter = 5;                   // 5°³ ÀоîµéÀÓ
    p_in.section_namelist = section_namelist;

    // µÎ¹øÂ° ´Ù¼¸ ¹®¼­¸¦ ÀоîµéÀÓ
    RedirectStdoutInit();   // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
    ret_val = clientLib.Request(GET_DOCUMENTS_WITH_PRIMARY_KEY, p_in, p_out);
    RedirectStdoutClose();
    if (ret_val != 0) {
        cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
        return -1;
    }


    /************************** ¸¶Áö¸· 5°³¸¦ ÀÐ¾î µéÀÓ **************************/
    p_in.table_namelist = table_namelist;   // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    p_in.direction = LAST_NODE;     // FIRST_NODE | LAST_NODE | PREVIOUS_NODE | NEXT_NODE
    //p_in.primary_key = "";            // FIRST_NODE¿Í LAST_NODE¿¡¼­´Â ÁöÁ¤ÇÒ ÇÊ¿ä ¾øÀ½
    p_in.counter = 5;                   // 5°³ ÀоîµéÀÓ
    p_in.section_namelist = section_namelist;

    // ¸¶Áö¸· ´Ù¼¸ ¹®¼­¸¦ ÀоîµéÀÓ
    RedirectStdoutInit();   // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
    ret_val = clientLib.Request(GET_DOCUMENTS_WITH_PRIMARY_KEY, p_in, p_out);
    RedirectStdoutClose();
    if (ret_val != 0) {
        cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
        return -1;
    }

    /************************** ±×ÀÌÀü 5°³¸¦ ÀÐ¾î µéÀÓ **************************/
    p_in.table_namelist = table_namelist;   // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤(À§¿¡¼­ ÁöÁ¤ÇßÀ¸¹Ç·Î ¿©±â¼± ÁöÁ¤¾ÈÇØµµ µÊ)
    p_in.direction = PREVIOUS_NODE;     // FIRST_NODE | LAST_NODE | PREVIOUS_NODE | NEXT_NODE
    p_in.primary_key = p_out.documents[0].sections[0].section_value;    // À§¿¡¼­ ÀоîµéÀΠù¹øÂ° ·¹ÄÚµåÀÇ PK¸¦ ÁöÁ¤
    p_in.counter = 5;                   // 5°³ ÀоîµéÀÓ
    p_in.section_namelist = section_namelist;

    // ÀÌÀü ´Ù¼¸ ¹®¼­¸¦ ÀоîµéÀÓ
    RedirectStdoutInit();   // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½... 
    ret_val = clientLib.Request(GET_DOCUMENTS_WITH_PRIMARY_KEY, p_in, p_out);
    RedirectStdoutClose();
    if (ret_val != 0) {
        cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
        return -1;
    }