tctdb的数据查询


#include <tcutil.h>
#include <tctdb.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>

int main(int argc, char **argv)
{
TCTDB *tdb;
int ecode, i, rsiz;
const char *rbuf, *name;
TCMAP *cols;
TDBQRY *qry;
TCLIST *res;

/* 创建一个数据库对象 */
tdb = tctdbnew();

/* 打开数据库对象 */
if(!tctdbopen(tdb, "db.tdb", TDBOWRITER | TDBOCREAT))
{
ecode = tctdbecode(tdb);
fprintf(stderr, "open error: %s\\n", tctdberrmsg(ecode));
}

/* 检索记录 */
qry = tctdbqrynew(tdb);

// 建立索引
tctdbsetindex(tdb,"ct",TDBITLEXICAL);

// 类似SELECT * FROM tbl WHERE sid = '100000425450915'
//tctdbqryaddcond(qry, "sid", TDBQCSTREQ, "100000425450915");

// 类似SELECT * FROM tbl WHERE id >= 1 and id <= 1000
tctdbqryaddcond(qry, "id", TDBQCNUMBT, "1,1000");


//tctdbqryaddcond(qry, "lang", TDBQCSTROR, "ja,en");
tctdbqrysetorder(qry, "ct", TDBQOSTRDESC);

tctdbqrysetmax(qry, 10);
res = tctdbqrysearch(qry);

for(i = 0; i < tclistnum(res); i++)
{
rbuf = tclistval(res, i, &rsiz);
cols = tctdbget(tdb, rbuf, rsiz);

if(cols)
{
printf("%s", rbuf);
tcmapiterinit(cols);

while((name = tcmapiternext2(cols)) != NULL)
{
printf("\t%s\t%s", name, tcmapget2(cols, name));
}

printf("\n");
tcmapdel(cols);
}
}
tclistdel(res);
tctdbqrydel(qry);

/* 关闭数据库 */
if(!tctdbclose(tdb)){
ecode = tctdbecode(tdb);
fprintf(stderr, "close error: %s\\n", tctdberrmsg(ecode));
}

/* *销毁数据库对象 */
tctdbdel(tdb);

return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值