亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xmlload.c

?? PB 熟悉的哥們希望大家可以互相學習一下
?? C
字號:
/***************************************************************
 *                                                             *
 * Copyright (c) 2001-2007 McObject LLC. All Right Reserved.   *
 *                                                             *
 ***************************************************************/

/* This samples demonstartes eXtremeDB XML input capabilities
 * The insert() function parses the xml file, creating the
 * database objects.
 *
 * The output() function writes all database in XML format to
 * standard output
 *
 */

#include <platform.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mco.h>

#include "XMLtestDB.h"

static const char* dbname = "XMLtestDB";
static const int SEGSZ = 1024 * 1024 * 1;
#ifndef MCO_PLATFORM_X64
    static const int PAGESIZE = 96;
#else 
    static const int PAGESIZE = 192;
#endif 


static int num_obj[3];

static FILE* file;
#define XML_TEXT_SIZE 10000						  /* size in bytes for xml buffer for 1 xml-object */
static char xml[XML_TEXT_SIZE];
static int ptr;

#if defined (_VXWORKS)
    char xml_name[] = "/tgtsvr/input.xml";
#elif defined (_WIN32_WCE)
    char xml_name[] = "input.xml";
#else 
    char xml_name[] = "input.xml";
#endif 

const int MAP_ADDRESS = 0x20000000;

/************************************************************/

void _SH_(void)
{

    char text[] = 
    {
        "\nThis samples demonstartes eXtremeDB XML load\n"
    };

    char text1[] = 
    {
        "Copyright (c) 2001-2007 McObject LLC. All Right Reserved.\n\n"
    };

    printf("%s\neXtremeDB runtime version %d.%d, build %d\n%s\n\nPress Enter to start", text, MCO_COMP_VER_MAJOR,
           MCO_COMP_VER_MINOR, MCO_COMP_BUILD_NUM, text1);

    getchar();

}


/************************************************************/

void showStat(mco_db_h db, uint2 class_code)
{
    MCO_RET rc = 0;
    mco_trans_h t;
    mco_class_stat_t stat;

    mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
    rc = mco_class_stat_get(t, class_code, &stat);
    mco_trans_commit(t);

    if (rc == MCO_S_OK)
    {
        printf("\n\tStatistics for the class with code %d:\n""\tNumber of objects:\t%ld\n"
               "\tTotal core pages used:\t%ld\n""\tTotal blob pages used:\t%ld\n""\tTotal core space used:\t%ld\n",
               class_code, stat.objects_num, stat.core_pages, stat.blob_pages, stat.core_space);
        num_obj[class_code - 1] = (int)stat.objects_num;
    }
}


void showMem(mco_db_h db)
{
    mco_puint totalpg, freepg;

    mco_db_free_pages(db, &freepg);
    mco_db_total_pages(db, &totalpg);

    printf("\n\tMemory Report:""\n\ttotal pages=%d (%dK)""\n\t free pages=%d (%dK)""\n\t used %dK\n", totalpg, totalpg*
           PAGESIZE / 1024, freepg, freepg* PAGESIZE / 1024, (totalpg - freepg)* PAGESIZE / 1024);
}


/************************************************************/

static int erase(mco_db_h db)
{
    mco_cursor_t csr;
    mco_trans_h t;
    Person p_obj;
    Children c_obj;
    Dog d_obj;
    int n;

    for (n = 0; n < num_obj[Dog_code - 1]; n++)
    {
        mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
        Dog_list_cursor(t, &csr);
        mco_cursor_first(t, &csr);
        Dog_from_cursor(t, &csr, &d_obj);
        Dog_delete(&d_obj);
        mco_trans_commit(t);
    }
    for (n = 0; n < num_obj[Children_code - 1]; n++)
    {
        mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
        Children_list_cursor(t, &csr);
        mco_cursor_first(t, &csr);
        Children_from_cursor(t, &csr, &c_obj);
        Children_delete(&c_obj);
        mco_trans_commit(t);
    }
    for (n = 0; n < num_obj[Person_code - 1]; n++)
    {
        mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
        Person_list_cursor(t, &csr);
        mco_cursor_first(t, &csr);
        Person_from_cursor(t, &csr, &p_obj);
        Person_delete(&p_obj);
        mco_trans_commit(t);
    }
    return 0;
}


/************************************************************/

int do_print(void* stream_handle, const void* from, unsigned nbytes)
{
    unsigned i;
    stream_handle = 0;
    for (i = 0; i < nbytes; i++)
    {
        printf("%c", ((char*)from)[i]);
    }
    return 0;
}


/************************************************************/

static const char xml_header1[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
static const char xml_header2[] = "<data>";
static const char xml_footer[] = "</data>";

static int insert(mco_db_h db)
{

    MCO_RET rc;
    mco_trans_h t;
    Person p_obj;
    Children c_obj;
    Dog d_obj;
    int class_code;
    int c;

    rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
    if (rc)
    {
        return rc;
    }

    for (;;)
    {
         /* loop on xml-objects */
        /* skip all before class tag */
        do
        {
            c = getc(file);
        }
        while (c != '<' && c != EOF);
        if (c == EOF)
        {
            break;
        }
         /* finished */
        ptr = 1;
        xml[0] = '<';
        /* read class name */
        do
        {
            c = getc(file);
            xml[ptr++] = c;
        }
        while (c != '>' && c != EOF);
        if (c == EOF)
        {
            break;
        }
         /* finished */
        xml[ptr] = 0;
        if (strcmp(xml, "<Person>") == 0)
        {
            class_code = Person_code;
        }
        else if (strcmp(xml, "<Children>") == 0)
        {
            class_code = Children_code;
        }
        else if (strcmp(xml, "<Dog>") == 0)
        {
            class_code = Dog_code;
        }
        // skip the XML header

        else if (strcmp(xml, xml_header1) == 0)
        {
            continue;
        }
        else if (strcmp(xml, xml_header2) == 0)
        {
            continue;
        }
        else if (strcmp(xml, xml_footer) == 0)
        {
            continue;
        }

        else
        {
            printf("\nError - undefined class '%s'\n", xml);
            exit(3);
        }

        /* read xml-object */
        for (;;)
        {
            c = getc(file);
            if (c == EOF)
            {
                xml[ptr] = 0;
                printf("\nError - unexpected end of file: %s\n",  &xml[(ptr > 50) ? ptr - 50: 0]);
                exit(4);
            }
            xml[ptr++] = c;
            if (c == '>')
            {
                xml[ptr] = 0;
                if (class_code == Children_code)
                {
                    if (strcmp("</Children>", &xml[ptr - 11]) == 0)
                    {
                        break;
                    }
                }
                else if (class_code == Person_code)
                {
                    if (strcmp("</Person>", &xml[ptr - 9]) == 0)
                    {
                        break;
                    }
                }
                else if (class_code == Dog_code)
                {
                    if (strcmp("</Dog>", &xml[ptr - 6]) == 0)
                    {
                        break;
                    }
                }
            }
        }
        switch (class_code)
        {
            case Children_code:
                rc = Children_xml_create(t, xml, &c_obj);
                break;
            case Person_code:
                rc = Person_xml_create(t, xml, &p_obj);
                break;
            case Dog_code:
                rc = Dog_xml_create(t, xml, &d_obj);
                break;
        }
        if (rc != MCO_S_OK)
        {
            printf("ERR CREATE %d\n", rc);
            exit(0);
        }
        ptr = 0;
    } /* loop on xml-objects */

    rc = mco_trans_commit(t);
    return rc;
}


/************************************************************/

/* fatal error handler */
static void errhandler(int n)
{
    printf("\neXtremeDB runtime fatal error: %d", n);
    getchar();
    exit( - 1);
}


/************************************************************/

#include "mcoxml.h"

MCO_RET output(mco_db_h db)
{
    mco_trans_h t;
    Person p_obj;
    Children c_obj;
    Dog d_obj;
    MCO_RET rc;
    mco_cursor_t c;

    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc)
    {
        return rc;
    }

    rc = Person_list_cursor(t, &c);
    if (rc)
    {
        return rc;
    }
    rc = mco_cursor_first(t, &c);
    if (rc)
    {
        return rc;
    }
    for (;;)
    {
        rc = Person_from_cursor(t, &c, &p_obj);
        if (rc)
        {
            return rc;
        }
        rc = Person_xml_get(&p_obj, 0, &do_print);
        if (rc)
        {
            return rc;
        }
        if (mco_cursor_next(t, &c) != MCO_S_OK)
        {
            break;
        }
    }

    rc = Children_list_cursor(t, &c);
    if (rc)
    {
        return rc;
    }
    rc = mco_cursor_first(t, &c);
    if (rc)
    {
        return rc;
    }
    for (;;)
    {
        rc = Children_from_cursor(t, &c, &c_obj);
        if (rc)
        {
            return rc;
        }
        rc = Children_xml_get(&c_obj, 0, &do_print);
        if (rc)
        {
            return rc;
        }
        if (mco_cursor_next(t, &c) != MCO_S_OK)
        {
            break;
        }
    }

    rc = Dog_list_cursor(t, &c);
    if (rc)
    {
        return rc;
    }
    rc = mco_cursor_first(t, &c);
    if (rc)
    {
        return rc;
    }
    for (;;)
    {
        rc = Dog_from_cursor(t, &c, &d_obj);
        if (rc)
        {
            return rc;
        }
        rc = Dog_xml_get(&d_obj, 0, &do_print);
        if (rc)
        {
            return rc;
        }
        if (mco_cursor_next(t, &c) != MCO_S_OK)
        {
            break;
        }
    }

    rc = mco_trans_commit(t);
    return rc;
}


/************************************************************/

int main(int argc, char** argv)
{
    MCO_RET rc;
    mco_db_h db = 0;
    char* start_mem;
    mco_trans_h t;
    mco_xml_policy_t policy;

    mco_runtime_info_t info;

    _SH_();
    mco_get_runtime_info(&info);
    if (info.mco_shm_supported)
    {
        start_mem = (char*)MAP_ADDRESS;
    }
    else
    {
        start_mem = (char*)malloc(SEGSZ);
        if (!start_mem)
        {
            printf("Couldn't allocated memory\n");
            exit(1);
        }
    };

    file = fopen(xml_name, "r");

    if (file == 0)
    {
        printf("Cannot open file\n");
        exit(2);
    }

    /* set fatal error handler */
    mco_error_set_handler(&errhandler);

    rc = mco_runtime_start();
    rc = mco_db_open(dbname, XMLtestDB_get_dictionary(), start_mem, SEGSZ, (uint2)PAGESIZE);
    if (rc)
    {
        printf("\nerror creating database");
        if (!info.mco_shm_supported)
        {
            free(start_mem);
        }
        exit(1);
    }

    /* connect to the database, obtain a database handle */
    mco_db_connect(dbname, &db);
    printf(
           "\nDatabase created successfully, db handle = %d\n%dK allocated for the database\nDatabase pagesize is %d bytes\n\n", (int)db, SEGSZ / 1024, PAGESIZE);

    rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
    if (rc)
    {
        goto end;
    }

    if (MCO_E_UNSUPPORTED == (rc = mco_xml_get_policy(t, &policy)))
    {
        printf("\nXML is not supported!\n\n");
        goto end;
    }

    policy.text_coding = MCO_TEXT_ASCII; //BASE64;
    policy.blob_coding = MCO_TEXT_ASCII; //BASE64;
    policy.ignore_field = MCO_YES;

    mco_xml_set_policy(t, &policy);

    rc = mco_trans_commit(t);
    if (rc)
    {
        goto end;
    }

    printf("\n\nLoading XML from file...");
    rc = insert(db);
    printf("done\n\n");
    if (rc)
    {
        goto end;
    }

    printf("\n\nReading XML from the database to the standard output\n\n");
    rc = output(db);

    end: 
    /* disconnect from the database, db is no longer valid */
    mco_db_disconnect(db);
    /* destroy the db */
    mco_db_close(dbname);
    mco_runtime_stop();

    if (!info.mco_shm_supported)
    {
        free(start_mem);
    }

    printf("\nPress Enter key to exit");
    getchar();
    PROG_EXIT(0);

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久日产精品| 91蜜桃视频在线| 亚洲激情男女视频| 欧美成人官网二区| 欧美三级午夜理伦三级中视频| 国产二区国产一区在线观看| 亚洲成人av电影在线| 国产精品美女久久久久aⅴ国产馆| 在线成人午夜影院| 欧美军同video69gay| 91麻豆国产香蕉久久精品| 国产九色sp调教91| 久久99久久精品| 日韩中文字幕区一区有砖一区| 亚洲精品写真福利| 亚洲精选视频免费看| 亚洲丝袜制服诱惑| 日本韩国欧美三级| 91视频国产观看| 91免费看`日韩一区二区| 97成人超碰视| 在线亚洲+欧美+日本专区| 国产呦萝稀缺另类资源| 国产精品一二三四五| 国产一区二区三区在线观看免费视频 | 国产欧美一区二区精品性色超碰| 日韩一区二区在线观看视频| 日韩小视频在线观看专区| 日韩午夜在线播放| 久久久久久久综合色一本| 久久久久国产精品厨房| 国产精品网友自拍| 亚洲视频网在线直播| 亚洲午夜国产一区99re久久| 五月天一区二区| 美国十次综合导航| 日韩成人精品在线| 国产毛片一区二区| 91亚洲国产成人精品一区二三| 色综合久久中文综合久久97| 欧美日韩视频不卡| 欧美mv和日韩mv国产网站| 国产亲近乱来精品视频| 亚洲激情五月婷婷| 青娱乐精品视频在线| 成人天堂资源www在线| 欧美视频中文字幕| 欧美精品一区二区三| 中文字幕一区二区三区视频| 亚洲v中文字幕| 国产在线精品免费av| 色av一区二区| 日韩免费看网站| 亚洲图片欧美激情| 全国精品久久少妇| 成人免费看视频| 91精品国产综合久久小美女| 欧美激情艳妇裸体舞| 午夜激情一区二区三区| 国产精品亚洲视频| 欧美美女视频在线观看| 国产精品久久久久久久久免费相片| 亚洲图片欧美一区| 不卡的电视剧免费网站有什么| 4438x亚洲最大成人网| 自拍偷拍欧美激情| 国产一区二区免费看| 欧美无砖砖区免费| 亚洲国产精品成人综合色在线婷婷| 午夜精品视频一区| 成人午夜短视频| 精品成人一区二区| 亚洲成人自拍偷拍| 色综合久久久久综合99| 久久女同性恋中文字幕| 五月激情综合网| 色猫猫国产区一区二在线视频| 久久久夜色精品亚洲| 日韩1区2区3区| 欧美在线观看一区| 中文字幕一区在线观看视频| 国产一区二区免费看| 日韩一级二级三级精品视频| 一区二区三区**美女毛片| 成人av资源网站| 国产日韩影视精品| 国产一区二区h| 精品国产在天天线2019| 美女一区二区三区| 色婷婷av久久久久久久| 自拍偷拍亚洲综合| av电影天堂一区二区在线观看| 国产清纯在线一区二区www| 国产一区二区剧情av在线| 日韩欧美国产午夜精品| 免费观看在线色综合| 日韩一区二区三区免费观看| 亚洲成人资源网| 欧美一区二区性放荡片| 美国欧美日韩国产在线播放| 欧美一区日韩一区| 一区二区三区四区不卡在线| 色一情一乱一乱一91av| 亚洲精品v日韩精品| 欧美日韩亚洲综合在线| 天堂午夜影视日韩欧美一区二区| 在线观看91av| 国产一区二区在线影院| 国产欧美一区二区精品秋霞影院 | 亚洲伦理在线免费看| 日本精品一区二区三区四区的功能| 日韩理论片中文av| 中文字幕亚洲在| 91在线播放网址| 一区二区三区欧美在线观看| 欧美体内she精高潮| 日韩av一区二区三区四区| 精品人在线二区三区| 国内精品自线一区二区三区视频| 欧美va在线播放| 国产传媒日韩欧美成人| 亚洲男人的天堂av| 制服丝袜亚洲播放| 国产麻豆精品一区二区| 国产精品久久久久精k8| 欧美性大战久久久久久久| 蜜桃久久久久久久| 国产精品欧美一区二区三区| 精品1区2区3区| 国产精品一区在线观看你懂的| 国产色一区二区| 欧美日韩大陆一区二区| 狠狠色丁香久久婷婷综合_中| 国产精品丝袜一区| 欧美三区在线观看| 成人国产精品免费观看视频| 亚洲国产视频直播| 欧美美女黄视频| 波多野洁衣一区| 美女在线视频一区| 亚洲男人的天堂在线观看| 日韩一区二区三区在线| 亚洲精品免费播放| 亚洲精品一线二线三线| 色8久久精品久久久久久蜜| 久久99热狠狠色一区二区| 中文字幕中文在线不卡住| 538在线一区二区精品国产| 波多野结衣一区二区三区| 毛片基地黄久久久久久天堂| 亚洲视频香蕉人妖| 国产午夜亚洲精品理论片色戒| 欧美裸体一区二区三区| 成年人国产精品| 精品一区二区综合| 亚洲国产一区二区三区青草影视 | 亚洲欧美中日韩| 日韩精品一区二区三区视频播放 | 春色校园综合激情亚洲| 日本欧美韩国一区三区| 一区二区免费在线播放| 国产欧美一区视频| 欧美不卡一二三| 欧美精品成人一区二区三区四区| 成av人片一区二区| 国产成人免费av在线| 韩国v欧美v日本v亚洲v| 免费在线观看精品| 国产亚洲欧美色| 精品国产欧美一区二区| 欧美一区永久视频免费观看| 欧美色手机在线观看| 国产性色一区二区| 亚洲精品乱码久久久久久久久 | 国产69精品久久777的优势| 久久女同精品一区二区| 欧美人xxxx| 天天色综合天天| 男女激情视频一区| 国产成人免费9x9x人网站视频| jiyouzz国产精品久久| 欧美精品欧美精品系列| 久久久国产精品午夜一区ai换脸| 亚洲色图.com| 麻豆极品一区二区三区| av中文字幕在线不卡| 欧美午夜一区二区三区| 精品国产凹凸成av人网站| 国产精品麻豆一区二区| 日日嗨av一区二区三区四区| 大桥未久av一区二区三区中文| 欧美亚洲免费在线一区| 精品国产乱码久久久久久图片| 亚洲三级在线播放| 国模套图日韩精品一区二区 | 2020国产精品| 亚洲在线一区二区三区| 国产自产v一区二区三区c| 欧美日韩视频专区在线播放| 欧美国产成人精品|