#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;
}
tctdb的数据查询
最新推荐文章于 2013-04-19 14:11:00 发布