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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wtest.c

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

#include "wddb.h"

#define DB_MEMORY_SIZE  4 * 1024 * 1024
#ifndef MCO_PLATFORM_X64
    #define PAGESIZE        96
#else 
    #define PAGESIZE        192 
#endif 


const int MAP_ADDRESS = 0x20000000;

static int char_to_wchar(nchar_t* wbuff, const char* sbuff, int max_len)
{
    int i;
    for (i = 0; i < max_len; i++)
    {
        wbuff[i] = ((uint2)sbuff[i] | 0x1a00);
        if (!sbuff[i])
        {
            break;
        }
    }
    return i;
}

static char* nchar_to_char(nchar_t* wbuff, int len)
{
    static char buffer[500];
    int i;
    for (i = 0; i < len && wbuff[i]; i++)
    {
        buffer[i] = (char)(wbuff[i] &0x00ff);
    }
    buffer[i] = 0;
    return buffer;
}

static void out_wchar(nchar_t* wbuff, int len)
{
    int i;
    for (i = 0; i < len && wbuff[i]; i++)
    {
        printf("%c",(int)(wbuff[i] &0x00ff));
    }
}

#include "w_data.h"

/* Load data to the database */
int LoadData(mco_db_h db)
{

    MCO_RET rc;
    mco_trans_h t;
    int i = 0;
    uint2 len;
    Record Obj;
    nchar_t wbuffer[100];

    struct emp_data* e_ptr = EmpData;

    while (e_ptr->name)
    {
        /* let's store records in DB */
        /* begin the transaction  */
        rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);

        if (rc == MCO_S_OK)
        {

            /* allocate a new object */
            rc = Record_new(t, &Obj);

            if (rc == MCO_S_OK)
            {
                i++;
                /* fill the attributes */
                Record_iNumber_put(&Obj, i);

                len = char_to_wchar(wbuffer, e_ptr->dep, 100);
                Record_ncCode_put(&Obj, wbuffer, len);

                len = char_to_wchar(wbuffer, e_ptr->name, 100);
                Record_nsName_put(&Obj, wbuffer, len);

                len = char_to_wchar(wbuffer, e_ptr->dep, 100);
                Record_ncDepartment_put(&Obj, wbuffer, len);

                len = char_to_wchar(wbuffer, e_ptr->job, 100);
                Record_nsJob_put(&Obj, wbuffer, len);

                rc = mco_trans_commit(t);
            } 
            else
            {

                printf("Couldn't allocate a new object\n");
                mco_trans_rollback(t);
            };

        }
        else
        {
            printf("Unable to start a transaction\n");
        };
        e_ptr++;
    };
    return 1;
}


/* Show attrs of a record */
void ShowObj(Record* hObj)
{
    nchar_t buffer[500];
    uint4 i;
    uint2 len;

    Record_iNumber_get(hObj, &i);
    printf("# %d: Code='", i);

    Record_ncCode_get(hObj, buffer, 500);
    out_wchar(buffer, 8);
    printf("' Name=");

    Record_nsName_get(hObj, buffer, 500, &len);
    out_wchar(buffer, len);
    printf(" Department=");

    Record_ncDepartment_get(hObj, buffer, 500);
    out_wchar(buffer, 20);
    printf(" Job=");

    Record_nsJob_get(hObj, buffer, 500, &len);
    out_wchar(buffer, len);
    printf("\n");
};

/* Show data using tree-indexes routine */

void ShowData(mco_db_h db)
{

    MCO_RET rc;
    mco_trans_h t;
    mco_cursor_t csr, csr2;
    Record Obj;
    int i, j;

    /* navigate downward thru the items from the first to the last */
    printf("List of the first 10 records:\n");

    /* open a transaction */
    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc == MCO_S_OK)
    {

        /* open the cursor */
        rc = Record_I_Order_index_cursor(t, &csr);
        if (rc == MCO_S_OK)
        {

            /* jump to the first record */
            rc = mco_cursor_first(t, &csr);

            /* take 10 items */
            for (i = 0; i < 10 && rc == MCO_S_OK; i++)
            {

                /* get record from cursor */
                rc = Record_from_cursor(t, &csr, &Obj);

                if (rc == MCO_S_OK)
                {

                    /* show it */
                    ShowObj(&Obj);

                    /* move to the next item */
                    rc = mco_cursor_next(t, &csr);
                };
            };
        }
        else
        {
            printf("Unable to open a cursor");
        };

        /*  close the transaction */
        rc = mco_trans_commit(t);
    }
    else
    {
        printf("Unable to open a transaction");
    };
    printf("\n");

    /* navigate upward thru the items from the last to the first */
    printf("List of the last 10 records:\n");

    /* open a transaction */
    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc == MCO_S_OK)
    {

        /* open the cursor */
        rc = Record_I_Order_index_cursor(t, &csr);
        if (rc == MCO_S_OK)
        {

            /* move to last item */
            rc = mco_cursor_last(t, &csr);

            /* show last 10 items */
            for (i = 0; i < 10 && rc == MCO_S_OK; i++)
            {

                /* get the record */
                rc = Record_from_cursor(t, &csr, &Obj);

                if (rc == MCO_S_OK)
                {

                    /* show	it */
                    ShowObj(&Obj);

                    /* move to the next item */
                    rc = mco_cursor_prev(t, &csr);
                };
            };
        }
        else
        {
            printf("Unable to a open cursor");
        };
        rc = mco_trans_commit(t);
    }
    else
    {
        printf("Unable to open a transaction");
    };
    printf("\n");

    /* looking for specified item */
    printf("Search for the first record, where department is QA\n");

    /* open a transaction */
    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc == MCO_S_OK)
    {

        /* open the cursor */
        rc = Record_I_Department_index_cursor(t, &csr);
        if (rc == MCO_S_OK)
        {

            nchar_t wbuf[100];
            uint2 len;
            len = char_to_wchar(wbuf, "QA", 2);

            /* search an item by key value */
            rc = Record_I_Department_search(t, &csr, MCO_EQ, wbuf, len);

            /* analyze the results */
            switch (rc)
            {
                case MCO_S_OK:
                    {
                        /* Item's found. Display it. */
                        rc = Record_from_cursor(t, &csr, &Obj);

                        if (rc == MCO_S_OK)
                        {
                            ShowObj(&Obj);

                            /* Locate it in the I_Index cursor */
                            rc = Record_I_Index_locate(t, &csr2, &Obj);

                            if (rc == MCO_S_OK)
                            {

                                /* And show next one */
                                if (mco_cursor_next(t, &csr2) == MCO_S_OK && Record_from_cursor(t, &csr2, &Obj) ==
                                    MCO_S_OK)
                                {
                                    ShowObj(&Obj);
                                }
                            }
                            ;
                        }
                        ;
                    }
                    ;
                    break;
                case MCO_S_NOTFOUND:
                    printf("Not found.\n");
                    break;
                default:
                    printf("Error while searching.\n");
                    break;
            };
        }
        else
        {
            printf("Unable to open a cursor");
        };

        /* close the transaction */
        rc = mco_trans_commit(t);
    }
    else
    {
        printf("Unable to open a transaction");
    };
    printf("\n");


    /* using composite index I_DiffSum */
    printf("List of all records from the department = R&D\n");

    /* open a transaction */
    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc == MCO_S_OK)
    {
        /* open the cursor */
        rc = Record_I_Department_index_cursor(t, &csr);
        if (rc == MCO_S_OK)
        {

            nchar_t wbuf[100];
            uint2 len;

            /* Search for the first occurence */
            i = 1;
            len = char_to_wchar(wbuf, "R&D", 3);

            rc = Record_I_Department_search(t, &csr, MCO_EQ, wbuf, len);

            do
            {
                int cmp = 0;

                /* compare the item */
                rc = Record_I_Department_compare(t, &csr, wbuf, len, &cmp);
                if (rc == MCO_S_OK && cmp == 0)
                {

                    /* get the record */
                    rc = Record_from_cursor(t, &csr, &Obj);
                    if (rc == MCO_S_OK)
                    {

                        /* Show the record */
                        ShowObj(&Obj);

                        /* move to the next record */
                        rc = mco_cursor_next(t, &csr);
                        i++;
                    };
                }
                else
                {
                    break;
                };

            }
            while (rc == MCO_S_OK);
        }
        else
        {
            printf("Unable to open cursor");
        };

        /* close the tramsaction */
        rc = mco_trans_commit(t);

    }
    else
    {
        printf("Unable to open transaction");
    };
    printf("\n");

    printf("Alphabetical list\n");
    j = 0;

    /* open a transaction */
    rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
    if (rc == MCO_S_OK)
    {

        /* open the cursor */
        rc = Record_I_Name_index_cursor(t, &csr);
        if (rc == MCO_S_OK)
        {

            /* jump to first record */
            rc = mco_cursor_first(t, &csr);

            /* take 10 first items */
            while (rc == MCO_S_OK)
            {

                /* get a record from cursor */
                rc = Record_from_cursor(t, &csr, &Obj);

                if (rc == MCO_S_OK)
                {

                    /* show it */
                    ShowObj(&Obj);

                    /* move to the next item */
                    rc = mco_cursor_next(t, &csr);
                };
            }
        }
        else
        {
            printf("Unable to open cursor");
        };

        /* close the tramsaction */
        rc = mco_trans_commit(t);

    }
    else
    {
        printf("Unable to open a transaction");
    };
    printf("\n");
}


void _SH_(void)
{

    char text[] = 
    {
        "\nThis samples demonstartes various tree index operations\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();
}


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


int main(void)
{

    MCO_RET rc;
    mco_db_h db = 0;
    char* start_mem = 0;
    const char* dbName = "wddb";
    mco_runtime_info_t info;
    int rs = 1;

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

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

    /* start db engine */
    if (mco_runtime_start() != MCO_S_OK)
    {
        printf("\nUnable to start database engine\n");
        if (!info.mco_shm_supported)
        {
            free(start_mem);
        }
        exit( - 1);
    };

    /* Create a database, using first memory segment */
    rc = mco_db_open(dbName, wddb_get_dictionary(), start_mem, DB_MEMORY_SIZE, (uint2)PAGESIZE);

    if (rc == MCO_S_OK)
    {

        /* connect to the database, obtain a database handle */
        if (mco_db_connect(dbName, &db) == MCO_S_OK)
        {

            /* if LoadData is OK than ShowData */
            if (LoadData(db))
            {
                ShowData(db);
                rs = 0;
            }
            else
            {
                printf("Unable to load data\n");
            };
        }
        else
        {
            printf("Unable to connect database\n");
        };

        /* disconnect from the database, db is no longer valid */
        if (mco_db_disconnect(db) != MCO_S_OK)
        {
            rs = 2;
            printf("mco_db_disconnect(...) failed\n");
        };

        /* destroys the memory manager */
        if (mco_db_close(dbName) != MCO_S_OK)
        {
            rs = 3;
            printf("mco_db_close(...) failed\n");
        };

    }
    else
    {
        printf("\nerror creating database");
    };

    /* free the memory */
    if (!info.mco_shm_supported)
    {
        free(start_mem);
    }

    /* shutdown database engine */
    mco_runtime_stop();

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜寂寞影院| 亚洲电影激情视频网站| 午夜视频在线观看一区二区| 欧美乱妇15p| 粉嫩av亚洲一区二区图片| 成人影视亚洲图片在线| 欧美国产禁国产网站cc| 亚洲欧洲日韩在线| 色狠狠av一区二区三区| 中文字幕在线观看一区二区| 99re这里只有精品6| 亚洲bt欧美bt精品777| 91精品国产高清一区二区三区蜜臀 | 日韩欧美一级在线播放| 欧美日韩免费在线视频| 久久色.com| 亚洲国产成人av| 波多野结衣在线一区| 欧美精品久久久久久久多人混战 | 国产精品麻豆视频| 欧美军同video69gay| 国产福利精品导航| 国产乱人伦偷精品视频免下载| 老汉av免费一区二区三区| 琪琪久久久久日韩精品| 亚洲综合色成人| 91在线一区二区三区| 欧美国产欧美综合| 欧美日韩国产影片| 成人福利视频在线看| 视频在线观看91| 亚洲另类在线制服丝袜| 国产日韩欧美麻豆| 久久人人爽人人爽| 欧美一区二区三区在线观看视频| 精品一区二区三区欧美| 亚洲人被黑人高潮完整版| 国产成人免费9x9x人网站视频| 欧美成人bangbros| 国产成人免费在线| 综合色中文字幕| 色婷婷综合久久久久中文一区二区 | 成人毛片视频在线观看| 国产精品美日韩| 欧美性猛交一区二区三区精品 | 亚洲国产你懂的| 国产亚洲精品中文字幕| 欧美日韩黄色影视| 不卡的av网站| 国产在线观看免费一区| 亚洲永久免费视频| 中文字幕在线不卡一区| 日韩欧美不卡在线观看视频| 日本韩国精品在线| www.日韩在线| 国产成人丝袜美腿| 麻豆精品视频在线观看免费 | 日本视频中文字幕一区二区三区 | 亚洲成人资源网| 一区二区三区色| 欧美国产激情二区三区| 精品少妇一区二区三区视频免付费| 在线观看不卡一区| 成人av电影在线网| 成人精品一区二区三区四区 | 国产麻豆午夜三级精品| 蜜臀av一区二区在线免费观看 | 亚洲精品视频在线观看网站| 久久免费看少妇高潮| 日韩免费在线观看| 91麻豆精品91久久久久同性| 欧美日韩一区高清| 欧美亚洲动漫制服丝袜| 91福利精品第一导航| 色丁香久综合在线久综合在线观看| 成人福利视频在线看| 国产成人在线免费观看| 国产一区二区三区免费看| 久草热8精品视频在线观看| 日韩精品久久理论片| 手机精品视频在线观看| 亚洲国产欧美日韩另类综合| 丝袜亚洲另类欧美综合| 天天亚洲美女在线视频| 日韩黄色免费网站| 蜜芽一区二区三区| 久久草av在线| 国产精品69毛片高清亚洲| 风间由美性色一区二区三区| 成人涩涩免费视频| 97aⅴ精品视频一二三区| 色综合久久九月婷婷色综合| 色8久久精品久久久久久蜜| 欧美自拍偷拍一区| 欧美一区三区二区| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品成人综合| 亚洲天堂网中文字| 亚洲大片免费看| 黑人巨大精品欧美一区| 成人精品小蝌蚪| 欧美亚洲综合另类| 欧美一卡二卡在线| 国产三级精品三级在线专区| 国产精品久久国产精麻豆99网站| 亚洲免费在线看| 日韩av在线播放中文字幕| 精品一区二区三区欧美| 97se亚洲国产综合自在线不卡| 欧美性xxxxxxxx| 精品美女被调教视频大全网站| 国产婷婷色一区二区三区四区| 亚洲摸摸操操av| 久久99精品国产麻豆婷婷| 成人免费三级在线| 欧美浪妇xxxx高跟鞋交| 久久久久久久久久电影| 亚洲精品videosex极品| 另类调教123区| 波多野结衣91| 日韩亚洲欧美在线| 中文字幕亚洲在| 美国欧美日韩国产在线播放| 成人av网址在线| 欧美一区二区三区四区久久 | 亚洲女人小视频在线观看| 麻豆专区一区二区三区四区五区| av男人天堂一区| 日韩欧美国产午夜精品| 亚洲日本va在线观看| 久久精品99久久久| 色999日韩国产欧美一区二区| 精品福利av导航| 亚洲图片欧美综合| 高清shemale亚洲人妖| 宅男在线国产精品| 一区二区三区中文字幕| 国精产品一区一区三区mba桃花| 欧美亚洲图片小说| 国产精品久久久久7777按摩 | 日韩国产欧美视频| 一本久久综合亚洲鲁鲁五月天| 欧美精品一区男女天堂| 亚洲国产日韩av| 99久久国产综合精品女不卡| 亚洲精品一区二区三区精华液| 亚洲va欧美va天堂v国产综合| 成人aa视频在线观看| 久久影院电视剧免费观看| 免费观看久久久4p| 欧美日韩极品在线观看一区| 亚洲乱码国产乱码精品精98午夜| 国产aⅴ综合色| 久久综合九色综合久久久精品综合| 亚洲国产综合人成综合网站| 91亚洲精品一区二区乱码| 久久久久国色av免费看影院| 看电视剧不卡顿的网站| 欧美精品久久一区二区三区| 亚洲一区二区三区四区在线观看| 成人av在线一区二区三区| 久久久亚洲高清| 国产原创一区二区| 精品蜜桃在线看| 精品一区二区三区久久| 日韩欧美一级二级三级久久久| 亚洲国产成人av| 欧美精品久久99| 视频一区欧美日韩| 欧美精品国产精品| 欧美aaaaaa午夜精品| 日韩女优毛片在线| 狠狠狠色丁香婷婷综合久久五月| 精品国产一区二区国模嫣然| 久久er99热精品一区二区| 精品国产91乱码一区二区三区| 极品少妇xxxx精品少妇| 精品入口麻豆88视频| 激情五月婷婷综合| 久久精品欧美日韩| 99国产精品久久久| 亚洲综合成人在线| 欧美色区777第一页| 日韩av电影免费观看高清完整版在线观看| 欧美日韩一区二区三区免费看| 亚洲国产日韩一级| 欧美一级夜夜爽| 国产精品 日产精品 欧美精品| 欧美激情一区二区在线| 色伊人久久综合中文字幕| 亚洲电影你懂得| 日韩女优毛片在线| 成人福利视频在线| 亚洲国产成人va在线观看天堂| 日韩欧美高清dvd碟片| 国产99一区视频免费| 一区二区三区四区亚洲| 日韩一区二区免费电影| 国产黄色精品网站| 一区二区三区不卡视频|