- #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的数据查询
最新推荐文章于 2025-08-06 16:23:50 发布