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

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

?? clitest.c

?? FastDb是高效的內存數據庫系統
?? C
字號:
/*-< CLITEST.C >-----------------------------------------------------*--------*
 * FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
 * (Main Memory Database Management System)                          *   /\|  *
 *                                                                   *  /  \  *
 *                          Created:     13-Jan-2000 K.A. Knizhnik   * / [] \ *
 *                          Last update: 13-Jan-2000 K.A. Knizhnik   * GARRET *
 *-------------------------------------------------------------------*--------*
 * Test for FastDB call level interface 
 * Spawn "subsql  clitest.sql" to start CLI server. 
 *-------------------------------------------------------------------*--------*/

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "cli.h"

typedef struct  person { 
    char        name[64];
    cli_int8_t  salary;

    char*       address;
    cli_real8_t weight;
    cli_int4_t  n_subordinates;
    cli_oid_t*  subordinates;
} person;

void* set_subordinates(int var_type, void* var_ptr, int len)
{
    person* p = (person*)var_ptr;
    if (p->subordinates != NULL) { 
        free(p->subordinates);
    }
    p->n_subordinates = len;
    p->subordinates = (cli_oid_t*)malloc(len*sizeof(cli_oid_t));
    return p->subordinates;
}

void* get_subordinates(int var_type, void* var_ptr, int* len)
{
    person* p = (person*)var_ptr;
    *len = p->n_subordinates;
    return p->subordinates;
}

static cli_field_descriptor person_descriptor[] = {
    {cli_asciiz, cli_hashed, "name"},
    {cli_int8, cli_indexed, "salary"},
    {cli_pasciiz, 0, "address"}, 
    {cli_real8, 0, "weight"}, 
    {cli_array_of_oid, 0, "subordinates", "persons"}
}; 


int main()
{
    char* serverURL = "localhost:6100";
    char* databaseName = "clitest";
    char* filePath = "clitest.fdb";
    int session, statement, statement2, rc, len;
    int i, n, salary;
    int table_created = 0;
    char name[256];
    char address[256];
    cli_oid_t oid;
    person p;

    session = cli_open(serverURL, 10, 1);
    if (session == cli_bad_address) { 
	session = cli_create(databaseName, filePath, 0, 0, 4*1024*1024, 4*1024*1024, 512*1024, 0);
    }
    if (session < 0) { 
        fprintf(stderr, "cli_open failed with code %d\n", session);
        return EXIT_FAILURE;
    }

    rc = cli_create_table(session, "persons", sizeof(person_descriptor)/sizeof(cli_field_descriptor), 
			  person_descriptor);
    if (rc == cli_ok) { 
	table_created = 1;
        rc = cli_alter_index(session, "persons", "salary", cli_indexed); 
        if (rc != cli_ok) { 
            fprintf(stderr, "cli_alter_index failed with code %d\n", rc);
            return EXIT_FAILURE;
        }
        rc = cli_alter_index(session, "persons", "name", cli_indexed); 
        if (rc != cli_ok) { 
            fprintf(stderr, "cli_alter_index 2 failed with code %d\n", rc);
            return EXIT_FAILURE;
        }
    } else if (rc != cli_table_already_exists && rc != cli_not_implemented) { 
	fprintf(stderr, "cli_create_table failed with code %d\n", rc);
	return EXIT_FAILURE;
    } 

    statement = cli_statement(session, "insert into persons");
    if (statement < 0) { 
        fprintf(stderr, "cli_statement failed with code %d\n", statement);
        return EXIT_FAILURE;
    }

    if ((rc=cli_column(statement, "name", cli_asciiz, NULL, p.name)) != cli_ok
        || (rc=cli_column(statement, "salary", cli_int8, NULL, &p.salary)) != cli_ok
        || (rc=cli_column(statement, "address", cli_pasciiz, &len, &p.address)) != cli_ok
        || (rc=cli_column(statement, "weight", cli_real8, NULL, &p.weight)) != cli_ok
        || (rc=cli_array_column(statement, "subordinates", cli_array_of_oid, &p, 
                                set_subordinates, get_subordinates)) != cli_ok)
    {
        fprintf(stderr, "cli_column 1 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }

    strcpy(p.name, "John Smith");
    p.salary = 75000;
    p.address = "1 Guildhall St., Cambridge CB2 3NH, UK";
    p.weight = 80.3;
    p.n_subordinates = 0;
    p.subordinates = NULL;
    rc = cli_insert(statement, &oid);
    if (rc != cli_ok) { 
        fprintf(stderr, "cli_insert failed with code %d\n", rc);
        return EXIT_FAILURE;
    }

    strcpy(p.name, "Joe Cooker");
    p.salary = 100000;
    p.address = "Outlook drive, 15/3";
    p.weight = 80.3;
    p.n_subordinates = 1;
    p.subordinates = &oid;
    rc = cli_insert(statement, NULL);
    if (rc != cli_ok) { 
        fprintf(stderr, "cli_insert 2 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }

    rc = cli_free(statement);
    if (rc != cli_ok) { 
        fprintf(stderr, "cli_free failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    
    p.subordinates = NULL;
    statement = cli_statement(session, 
                              "select * from persons where "
                              "length(subordinates) < %subordinates and salary > %salary");
    if (statement < 0) { 
        fprintf(stderr, "cli_statement 2 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    p.address = address;
    len = sizeof(address);
    if ((rc=cli_column(statement, "name", cli_asciiz, NULL, p.name)) != cli_ok
        || (rc=cli_column(statement, "salary", cli_int8, NULL, &p.salary)) != cli_ok
        || (rc=cli_column(statement, "address", cli_pasciiz, &len, &p.address)) != cli_ok
        || (rc=cli_column(statement, "weight", cli_real8, NULL, &p.weight)) != cli_ok
        || (rc=cli_array_column(statement, "subordinates", cli_array_of_oid, &p, 
                                set_subordinates, get_subordinates)) != cli_ok)
    {
        fprintf(stderr, "cli_column 2 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    if ((rc = cli_parameter(statement, "%subordinates", cli_int4, &n)) != cli_ok 
        || (rc = cli_parameter(statement, "%salary", cli_int4, &salary)) != cli_ok)
    {
        fprintf(stderr, "cli_parameter failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    n = 2;
    salary = 90000;
    rc = cli_fetch(statement, cli_view_only);
    if (rc != 1) { 
        fprintf(stderr, "cli_fetch 1 returns %d instead of 1\n", rc);
        return EXIT_FAILURE;
    }
    n = 10;
    salary = 50000;
    rc = cli_fetch(statement, cli_for_update);
    if (rc != 2) { 
        fprintf(stderr, "cli_fetch 2 returns %d instead of 2\n", rc);
        return EXIT_FAILURE;
    }
    statement2 = cli_statement(session, "select * from persons where current = %oid");
    if (statement2 < 0) { 
        fprintf(stderr, "cli_statement 3 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
 
    if ((rc=cli_column(statement2, "name", cli_asciiz, NULL, name)) != cli_ok) { 
        fprintf(stderr, "cli_column 3 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    if ((rc = cli_parameter(statement2, "%oid", cli_oid, &oid)) != cli_ok) { 
        fprintf(stderr, "cli_parameter 3 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }	

    while ((rc = cli_get_next(statement)) == cli_ok) { 
        printf("%s\t%ld\t%f\t%s\n", p.name, (long)p.salary, p.weight, p.address);
        if (p.n_subordinates > 0) { 
            printf("Manages:\n");
            for (i = 0; i < p.n_subordinates; i++) { 
                oid = p.subordinates[i];
                rc = cli_fetch(statement2, cli_view_only); 
                if (rc != 1) { 
                    fprintf(stderr, "cli_fetch by oid failed with code %d\n", rc);
                    return EXIT_FAILURE;
                }	
                if ((rc = cli_get_first(statement2)) != cli_ok) { 
                    fprintf(stderr, "cli_get_first failed with code %d\n", rc);
                    return EXIT_FAILURE;
                }
                printf("\t%s\n", name);
            }
        }
        p.salary = p.salary*90/100;
        rc = cli_update(statement);
        if (rc != cli_ok) { 
            fprintf(stderr, "cli_update failed with code %d\n", rc);
            return EXIT_FAILURE;
        }
    }
    if (rc != cli_not_found) { 
        fprintf(stderr, "cli_get_next failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    if ((rc = cli_free(statement)) != cli_ok ||
        (rc = cli_free(statement2)) != cli_ok)
    {
        fprintf(stderr, "cli_free 2 failed with code %d\n", rc);
        return EXIT_FAILURE;	
    }
    if ((rc = cli_commit(session)) != cli_ok) { 
        fprintf(stderr, "cli_commit failed with code %d\n", rc);
        return EXIT_FAILURE;	
    }
    statement = cli_statement(session, "select * from persons order by salary");
    if (statement < 0) { 
        fprintf(stderr, "cli_statement 4 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }	
    if ((rc=cli_column(statement, "salary", cli_int4, NULL, &salary)) != cli_ok) { 
        fprintf(stderr, "cli_column 4 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    rc = cli_fetch(statement, cli_for_update);
    if (rc != 2) { 
        fprintf(stderr, "cli_fetch 4 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }	
    printf("New salaries:\n");
    while ((rc = cli_get_prev(statement)) == cli_ok) { 
        printf("\t%d\n", salary);
    }
    if (rc != cli_not_found) { 
        fprintf(stderr, "cli_get_prev failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    if ((rc = cli_remove(statement)) != cli_ok) {
        fprintf(stderr, "cli_remove failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    if ((rc = cli_free(statement)) != cli_ok) { 
        fprintf(stderr, "cli_free 3 failed with code %d\n", rc);
        return EXIT_FAILURE;	
    }
    if (table_created) { 
	rc = cli_drop_table(session, "persons");
	if (rc != cli_ok) { 
	    fprintf(stderr, "cli_drop_table failed with code %d\n", rc);
	    return EXIT_FAILURE;
	}
    }    

    if ((rc = cli_close(session)) != cli_ok) { 
        fprintf(stderr, "cli_close failed with code %d\n", rc);
        return EXIT_FAILURE;	
    }
    printf("*** CLI test sucessfully passed!\n");
    return EXIT_SUCCESS;
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色一区二区| 国产一区日韩二区欧美三区| 日本道色综合久久| 18成人在线观看| caoporm超碰国产精品| 中文字幕精品一区二区三区精品| 国产成人av一区二区三区在线观看| 精品国产123| 久久99久久精品欧美| 精品国产网站在线观看| 精品写真视频在线观看| 久久夜色精品一区| 成人激情校园春色| 亚洲三级视频在线观看| 在线观看国产一区二区| 五月天网站亚洲| 日韩精品一区二区在线| 国产成人在线网站| 中文字幕亚洲一区二区av在线| 色综合久久久久综合| 一区二区免费在线| 欧美精品在线一区二区三区| 日本在线播放一区二区三区| 精品少妇一区二区三区日产乱码 | 一区二区三区四区蜜桃| 欧美三级午夜理伦三级中视频| 蜜桃久久av一区| 国产午夜一区二区三区| 日本电影欧美片| 美国毛片一区二区| 国产精品午夜春色av| 91电影在线观看| 奇米综合一区二区三区精品视频| 久久久不卡影院| 91美女蜜桃在线| 玖玖九九国产精品| 中文字幕在线不卡一区| 欧美另类videos死尸| 国产九九视频一区二区三区| 亚洲va在线va天堂| 国产精品无人区| 国产日产亚洲精品系列| 欧美亚洲国产一卡| 国产成人综合在线| 午夜精品aaa| 国产精品无人区| 欧美成人官网二区| 欧洲精品一区二区三区在线观看| 激情文学综合丁香| 亚洲国产日韩在线一区模特| 国产片一区二区三区| 日韩欧美精品三级| 欧美日韩一区二区在线视频| 99久久精品情趣| 国产麻豆精品95视频| 日韩国产一二三区| 亚洲美女一区二区三区| 精品国产乱码久久久久久蜜臀| 不卡av在线免费观看| 视频在线观看一区| 一区二区三区日韩欧美| 久久亚洲一区二区三区四区| 在线亚洲精品福利网址导航| 韩国欧美一区二区| 精品国产成人在线影院| 7777精品伊人久久久大香线蕉| 高清在线观看日韩| 青娱乐精品视频| 最新国产成人在线观看| 26uuu亚洲| 日韩欧美电影一区| 精品视频在线免费观看| 国产mv日韩mv欧美| 爽好多水快深点欧美视频| 欧美国产97人人爽人人喊| 日韩一区二区三区三四区视频在线观看| 色久优优欧美色久优优| 国产91在线|亚洲| 久久99精品国产麻豆婷婷洗澡| 亚洲电影第三页| 亚洲精品高清在线| 国产人妖乱国产精品人妖| 国产女人aaa级久久久级| 日韩精品一区二区三区视频 | 日本v片在线高清不卡在线观看| 亚洲视频在线一区二区| 久久久久国产成人精品亚洲午夜 | 亚洲国产va精品久久久不卡综合| 国产精品久久99| 国产亚洲一区字幕| 日本高清不卡一区| 91美女片黄在线观看| 99视频一区二区| 成人午夜精品在线| 国产成人综合网站| 成人在线综合网站| 成人av免费在线播放| av中文字幕在线不卡| jiyouzz国产精品久久| 97精品久久久久中文字幕| av亚洲精华国产精华精| 99精品久久免费看蜜臀剧情介绍| 成人短视频下载| 国产风韵犹存在线视精品| 国产精品一级二级三级| 国产盗摄一区二区三区| 国产精品影视在线观看| 国产电影一区在线| 在线一区二区三区做爰视频网站| 日本韩国欧美在线| 欧洲视频一区二区| 欧美日韩一区二区三区四区| 欧美男人的天堂一二区| 久久亚洲精华国产精华液| 久久欧美一区二区| 国产精品盗摄一区二区三区| 一区二区三区四区在线播放 | 成人午夜视频网站| 97se亚洲国产综合自在线观| 一本大道av一区二区在线播放| 91污在线观看| 欧美日韩精品一区二区三区四区| 日韩欧美二区三区| 国产精品天美传媒| 亚洲欧美日韩人成在线播放| 亚洲高清在线精品| 亚洲一区二区av电影| 国产一区二区免费在线| av不卡免费在线观看| 欧美日韩一区在线观看| 日韩视频一区二区| 久久老女人爱爱| 亚洲午夜一区二区| 国产一区二区电影| 色狠狠色狠狠综合| 日韩三级av在线播放| 亚洲一区二区综合| 国产一区二区三区在线观看免费视频 | 《视频一区视频二区| 国产精品拍天天在线| 天天综合网 天天综合色| 国产乱子轮精品视频| 久久婷婷成人综合色| 国产日韩av一区| 精品亚洲国产成人av制服丝袜| 99久久99精品久久久久久| 欧美一区二区三区白人| 国产精品女同一区二区三区| 久久国产人妖系列| 一本色道**综合亚洲精品蜜桃冫| 日韩精品一区二区三区老鸭窝 | 99视频精品在线| 日韩一卡二卡三卡| 亚洲婷婷综合久久一本伊一区 | 亚洲国产高清在线| 亚洲国产日韩综合久久精品| 精品一区二区三区蜜桃| 欧美日韩一区二区在线视频| 亚洲人成网站影音先锋播放| 激情丁香综合五月| 欧美精品 日韩| 亚洲精品亚洲人成人网在线播放| 国产乱子伦视频一区二区三区 | 在线不卡的av| 自拍偷拍欧美激情| 国内偷窥港台综合视频在线播放| 欧美一级二级三级乱码| 亚洲综合一区二区| 国产成人自拍网| 欧美精品一区二区三| 久久精品国产77777蜜臀| 在线亚洲免费视频| 亚洲视频在线一区| 成人久久18免费网站麻豆| 国产免费成人在线视频| 国产中文一区二区三区| 777xxx欧美| 亚洲成人一区二区| jvid福利写真一区二区三区| 亚洲丝袜精品丝袜在线| youjizz久久| 中文字幕中文字幕在线一区 | 粉嫩av一区二区三区粉嫩| 日韩欧美在线综合网| 天堂蜜桃一区二区三区| 成人av一区二区三区| 一区二区三区在线观看视频| 色婷婷久久综合| 一区二区三区欧美久久| 成人成人成人在线视频| 亚洲精选在线视频| 日本国产一区二区| 一区二区高清免费观看影视大全 | 国产精品久久久久久久久晋中| 国产麻豆成人精品| 国产欧美久久久精品影院| 国产成人一级电影| 国产人成亚洲第一网站在线播放| 国产传媒欧美日韩成人| 国产精品毛片无遮挡高清|