`

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


分享到:
评论

相关推荐

    NoSQL技术交流.pptxNoSQL技术交流.pptx

    Tokyo Cabinet提供了多种数据存储方式,包括哈希数据库(TCHDB)、B+树数据库(TCBDB)、定长数据库(TCFDB)、表格数据库(TCTDB)、内存哈希数据库(TCMHB)和内存B+树数据库(TCNDB),每种都有特定的应用场景和...

    NoSQL技术培训 深入讲解

    - **TCTDB**:表格数据库,每条记录有主键和命名字段,支持部分复杂查询。 #### MongoDB MongoDB被视为NoSQL世界中功能最全面的数据库之一,结合了Key-Value存储的高性能和传统RDBMS的查询功能。它采用BSON文档...

    Tokyo Cabinet Key:Value数据库及其扩展应用

    单表记录数的增长导致查询效率降低,而读写分离模式在面对大量写操作时显得力不从心。随着并发请求数的增加,MySQL的性能也会显著下降。为了解决这些问题,一种名为Tokyo Cabinet的Key-Value键值数据库应运而生,由...

    tokyocabinet安装配置总结(Ubuntu)

    例如,创建一个新的数据库、插入数据、查询数据等。 10. **文档资源**: 提供的`Tokyocabinet_Tokyotyrant文档大合集.mht`文件包含Tokyocabinet和Tokyotyrant的详细文档,包括API参考、使用示例和常见问题解答。你...

Global site tag (gtag.js) - Google Analytics