unqliteAPI之read

UNQLITE_APIEXPORT int unqlite_kv_fetch(unqlite *pDb,const void *pKey,int nKeyLen,void *pBuf,unqlite_int64 /* in|out */*pBufLen);
UNQLITE_APIEXPORT int unqlite_kv_fetch_callback(unqlite *pDb,const void *pKey,
                        int nKeyLen,int (*xConsumer)(const void *,unsigned int,void *),void *pUserData);

unqlite_kv_fetch从数据库中获取一条记录,并将其内容复制到用户提供的缓冲区。此接口支持动态和静态分配缓冲区。如果获取的是一个比较大的数据,我们推荐使用unqlite_kv_fetch_callback,这个借口通过回调处理数据.

#include <unqlite.h>

int rc;
unqlite *pDb;
size_t nBytes;  //Data length
char *zBuf;     //动态申请内存.

// Open our database;
rc = unqlite_open(&pDb,"test.db",UNQLITE_OPEN_READONLY|UNQLITE_OPEN_MMAP);
if( rc != UNQLITE_OK ){ return; }

 //次数仅仅获得数据大大小。
rc = unqlite_kv_fetch(pDb,"record",-1,NULL,&nBytes);
if( rc != UNQLITE_OK ){
  return;
}

//通过malloc动态申请内存.
zBuf = (char *)malloc(nBytes);
if( zBuf == NULL ){ return; }

//将数据存放到buf中.
unqlite_kv_fetch(pDb,"record",-1,zBuf,&nBytes);

//Play with zBuf...

free(zBuf);

//Close our database handle
unqlite_close(pDb);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值