andorandpredicate1.c

来自「b树实现源码,linux和unix下运行,速度快,极好用」· C语言 代码 · 共 46 行

C
46
字号
#include "common.h"int main(){    Connection conn;    DbRetVal rv = conn.open("root", "manager");    if (rv != OK) return 1;    DatabaseManager *dbMgr = conn.getDatabaseManager();    if (dbMgr == NULL) { printf("Auth failed\n"); return 2;}    if ( createTable(dbMgr) != 0 ) { conn.close(); return 3; }    int inscount =  insertTuple(dbMgr, conn);    //check the inscount and return error    Table *table = dbMgr->openTable("t1");    if (table == NULL)    {        printf("Unable to open table\n");        return 0;    }    Condition p1,p2,p3,p4;    int val1 = 2, val2 = 3, val3 = 5;    p1.setTerm("f1", OpEquals, &val2);    p2.setTerm("f2", OpGreaterThan, &val1);    p3.setTerm("f3", OpNotEquals, &val3);    p4.setTerm("f4", OpLessThan, &val3);    Condition cond2, cond2a, cond2b;    cond2.setTerm(p1.getPredicate(), OpAnd, p2.getPredicate());    cond2a.setTerm(p3.getPredicate(), OpAnd, p4.getPredicate());    cond2b.setTerm(cond2.getPredicate(), OpOr, cond2a.getPredicate());    table->setCondition(&cond2b);    printf("Predicate: (f1 ==3 AND  f2 > 2) OR (f3 !=3 AND f4 <5) ) \n");    conn.startTransaction();    execAndPrint(table);    conn.commit();    dbMgr->closeTable(table);    dbMgr->dropTable("t1");    conn.close();    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?