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

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

?? clitest2.c

?? 俄羅斯牛人KK的作品,著名的ORDBMS,這里上傳最新的3.39版本源代碼.希望了解對象關系數據庫的同好,請不要錯過.
?? C
字號:
/*-< CLITEST2.C >-----------------------------------------------------*--------*
 * FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
 * (Main Memory Database Management System)                          *   /\|  *
 *                                                                   *  /  \  *
 *                          Created:     18-Jun-2003 K.A. Knizhnik   * / [] \ *
 *                          Last update: 18-Jun-2003 K.A. Knizhnik   * GARRET *
 *-------------------------------------------------------------------*--------*
 * Test for extended FastDB local call level interface 
 *-------------------------------------------------------------------*--------*/

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

typedef struct  person { 
    char*       name;
    cli_int8_t  salary;
    char*       address;
    cli_real8_t weight;
    cli_array_t subordinates;
} person;

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* databaseName = "clitest";
    char* filePath = "clitest2.fdb";
    int statement, statement2;
    int session;
    int table_created = 0;
    int rc;
    size_t i;
    cli_oid_t oid;
    person p, p2;

    memset(&p, 0, sizeof(p));   /* correctly initialize array fields */
    memset(&p2, 0, sizeof(p2)); /* correctly initialize array fields */

    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;
    } 

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

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

    statement = cli_prepare_query(session, 
                                  "select * from persons where "
                                  "length(subordinates) < %i and salary > %li");
    if (statement < 0) { 
        fprintf(stderr, "cli_statement 2 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }
    rc = cli_execute_query(statement, cli_view_only, &p, 2, (cli_int8_t)90000);
    if (rc != 1) { 
        fprintf(stderr, "cli_fetch 1 returns %d instead of 1\n", rc);
        return EXIT_FAILURE;
    }
    rc = cli_execute_query(statement, cli_for_update, &p, 10, (cli_int8_t)50000);
    if (rc != 2) { 
        fprintf(stderr, "cli_fetch 2 returns %d instead of 2\n", rc);
        return EXIT_FAILURE;
    }
    statement2 = cli_prepare_query(session, "select * from persons where current = %p");
    if (statement2 < 0) { 
        fprintf(stderr, "cli_statement 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.subordinates.size > 0) { 
            printf("Manages:\n");
            for (i = 0; i < p.subordinates.size; i++) { 
                rc = cli_execute_query(statement2, cli_view_only, &p2, *((cli_oid_t*)p.subordinates.data + i)); 
                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", p2.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_prepare_query(session, "select * from persons order by salary");
    if (statement < 0) { 
        fprintf(stderr, "cli_statement 4 failed with code %d\n", rc);
        return EXIT_FAILURE;
    }	
    rc = cli_execute_query(statement, cli_for_update, &p);
    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", (int)p.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一区二区三区免费野_久草精品视频
一区二区三区在线视频播放| 精品国产免费一区二区三区四区| 中文字幕高清一区| 北条麻妃国产九九精品视频| 国产拍欧美日韩视频二区| 国产福利91精品| 国产蜜臀97一区二区三区 | 久久亚洲私人国产精品va媚药| 蜜桃传媒麻豆第一区在线观看| 精品日韩av一区二区| 成人一区二区三区| 亚洲乱码国产乱码精品精的特点 | xvideos.蜜桃一区二区| 国产99精品国产| 亚洲男同性视频| 欧美午夜不卡视频| 捆绑调教一区二区三区| 欧美激情综合网| 色一区在线观看| 日韩精品乱码av一区二区| 337p日本欧洲亚洲大胆精品 | 色综合一个色综合| 五月婷婷久久综合| 国产日韩欧美高清在线| 91高清视频免费看| 精品一区二区三区在线播放| 中文字幕综合网| 欧美一区二区视频观看视频| 国产成人免费网站| 亚洲午夜私人影院| 国产午夜亚洲精品理论片色戒| 色综合天天综合| 免费观看一级特黄欧美大片| 国产精品第四页| 日韩欧美一区二区三区在线| 成人午夜碰碰视频| 丝袜美腿一区二区三区| 亚洲国产精品二十页| 欧美日本韩国一区二区三区视频| 国产九色sp调教91| 午夜欧美视频在线观看| 国产精品乱人伦中文| 日韩一级大片在线| 色综合色综合色综合| 国产福利91精品一区二区三区| 午夜电影网一区| 国产精品毛片大码女人| 欧美成人高清电影在线| 欧美绝品在线观看成人午夜影视| 国产成人av一区二区| 奇米影视7777精品一区二区| 亚洲欧美日韩精品久久久久| 久久青草欧美一区二区三区| 欧美一卡2卡3卡4卡| 在线观看91视频| av欧美精品.com| 国产乱码精品一区二区三区忘忧草 | 欧美日韩国产经典色站一区二区三区| 欧美中文字幕一二三区视频| 国产一区二区在线视频| 日韩黄色一级片| 亚洲一区精品在线| 日韩毛片精品高清免费| 国产精品免费视频观看| 久久综合久久综合久久| 日韩视频在线永久播放| 91精品国产一区二区人妖| 精品1区2区3区| 色88888久久久久久影院按摩 | 国产精品国产自产拍高清av王其 | 欧美肥大bbwbbw高潮| 91久久线看在观草草青青| av不卡在线观看| 成人av电影在线| www.欧美色图| 成人看片黄a免费看在线| 国产成人精品免费网站| 国产精品影音先锋| 国产精品一区2区| 国产精品系列在线观看| 国产精品系列在线播放| 国产精品 欧美精品| 国产成人亚洲精品青草天美 | 日韩国产欧美一区二区三区| 五月婷婷综合网| 午夜日韩在线电影| 日本va欧美va欧美va精品| 奇米影视一区二区三区| 韩国成人精品a∨在线观看| 国产呦萝稀缺另类资源| 国产99久久久精品| 99久久综合国产精品| 91亚洲精品久久久蜜桃网站| 91福利视频久久久久| 欧美日韩日日骚| 欧美一级理论片| 久久久影视传媒| 国产精品无圣光一区二区| 日韩毛片精品高清免费| 亚洲成国产人片在线观看| 奇米精品一区二区三区在线观看| 久久精品国产精品亚洲综合| 国产福利一区在线| 色呦呦一区二区三区| 欧美日韩亚洲国产综合| 日韩免费观看高清完整版| 国产亚洲1区2区3区| 亚洲激情男女视频| 91福利区一区二区三区| 日韩写真欧美这视频| 国产日产欧产精品推荐色| 亚洲美女一区二区三区| 免费黄网站欧美| 99久久精品一区| 69av一区二区三区| 中文字幕免费不卡在线| 天堂蜜桃一区二区三区| 狠狠网亚洲精品| 欧洲精品视频在线观看| 精品国产伦一区二区三区免费| 亚洲欧美在线视频| 日本欧美一区二区三区乱码| 成人精品gif动图一区| 欧美日韩午夜精品| 国产精品久久毛片a| 日韩精品色哟哟| 99精品欧美一区| 精品久久免费看| 专区另类欧美日韩| 美女脱光内衣内裤视频久久网站| av电影在线不卡| 精品国产免费久久| 香蕉av福利精品导航| 丁香激情综合国产| 日韩一区二区电影网| 亚洲天堂网中文字| 国产精品一二三四五| 91精品国产福利| 亚洲男人天堂一区| 国产成人精品免费视频网站| 69堂精品视频| 亚洲国产wwwccc36天堂| 91在线云播放| 欧美激情在线观看视频免费| 91浏览器在线视频| 国产欧美日韩三级| 韩国午夜理伦三级不卡影院| 在线电影欧美成精品| 一区二区三区资源| zzijzzij亚洲日本少妇熟睡| 26uuu国产电影一区二区| 青青草国产精品97视觉盛宴| 欧洲一区二区三区免费视频| 18涩涩午夜精品.www| 懂色av一区二区三区蜜臀| 精品国产123| 免费在线观看成人| 欧美绝品在线观看成人午夜影视| 一区二区在线免费| av成人免费在线| 国产精品视频一二| 国产成人免费视频网站高清观看视频| 欧美大片在线观看一区| 青青草97国产精品免费观看| 欧美另类高清zo欧美| 亚洲一区中文日韩| 欧美性感一类影片在线播放| 亚洲一二三专区| 91搞黄在线观看| 亚洲成a人v欧美综合天堂下载| 在线观看视频91| 一级女性全黄久久生活片免费| www.视频一区| 亚洲人成人一区二区在线观看| 成人激情校园春色| 亚洲免费在线视频一区 二区| aaa亚洲精品| 亚洲欧美电影一区二区| 99视频一区二区三区| 亚洲视频在线一区| 在线国产亚洲欧美| 亚洲午夜精品一区二区三区他趣| 欧美在线观看视频一区二区| 亚洲一区在线观看视频| 欧美精品精品一区| 青青草国产成人av片免费| 欧美大度的电影原声| 国产精品乱码妇女bbbb| 欧美探花视频资源| 欧美性色黄大片| 色诱亚洲精品久久久久久| 色欧美乱欧美15图片| 成人福利视频网站| 韩国成人在线视频| 不卡高清视频专区| 亚洲综合男人的天堂| 久久精品欧美一区二区三区不卡| 国产九色sp调教91| 中文一区在线播放| 国产一区二区三区免费播放|