acl  3.5.3.0
acl::hsproto类 参考

#include <hsproto.hpp>

+ 类 acl::hsproto 继承关系图:
+ acl::hsproto 的协作图:

Public 成员函数

 hsproto (bool cache_enable)
 
 ~hsproto ()
 
bool parse_respond (int nfld, string &in, int &errnum_out, const char *&serror_out)
 
const std::vector< hsrow * > & get ()
 
void reset ()
 

静态 Public 成员函数

static bool build_open (string &out, int id, const char *dbn, const char *tbl, const char *idx, const char *flds)
 
static bool build_get (string &out, int id, const char *values[], int num, const char *cond="=", int nlimit=0, int noffset=0)
 
static bool ACL_CPP_PRINTF (4, 5) build_get(string &out
 
static bool int int const char static bool build_mod (string &out, int id, const char *values[], int num, const char *to_values[], int to_num, const char *cond="=", int nlimit=0, int noffset=0)
 
static bool build_del (string &out, int id, const char *values[], int num, const char *cond="=", int nlimit=0, int noffset=0)
 
static bool ACL_CPP_PRINTF (4, 5) build_del(string &out
 
static bool int int const char static bool build_add (string &out, int id, const char *values[], int num)
 
static bool ACL_CPP_PRINTF (4, 5) build_add(string &out
 
static bool int int const char static void build_request (string &out, int id, const char *oper, const char *values[], int num, const char *limit_offset, char mop, const char *to_values[], int to_num)
 

Public 属性

static bool int id
 
static bool int int nfld
 
static bool int int const char * first_value
 

额外继承的成员函数

- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

在文件 hsproto.hpp13 行定义.

构造及析构函数说明

◆ hsproto()

acl::hsproto::hsproto ( bool  cache_enable)

◆ ~hsproto()

acl::hsproto::~hsproto ( )

成员函数说明

◆ ACL_CPP_PRINTF() [1/3]

static bool acl::hsproto::ACL_CPP_PRINTF ( ,
 
) &
static

创建查询数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
nfld{int} 在打开索引时字段个数
first_value{const char*} 第一个参数
...{const char*} 参数列表,最后一个参数为 NULL 表示结束
返回
{bool} 是否成功

◆ ACL_CPP_PRINTF() [2/3]

static bool acl::hsproto::ACL_CPP_PRINTF ( ,
 
) &
static

创建删除数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
nfld{int} 在打开索引时字段个数
first_value{const char*} 第一个参数
...{const char*} 参数列表,最后一个参数为 NULL 表示结束
返回
{bool} 是否成功

◆ ACL_CPP_PRINTF() [3/3]

static bool acl::hsproto::ACL_CPP_PRINTF ( ,
 
) &
static

创建添加数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
nfld{int} 在打开索引时字段个数
first_value{const char*} 第一个参数
...{const char*} 参数列表,最后一个参数为 NULL 表示结束
返回
{bool} 是否成功

◆ build_add()

static bool int int const char static bool acl::hsproto::build_add ( string out,
int  id,
const char *  values[],
int  num 
)
static

创建添加数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
values{const char*[]} 匹配字段值数组,字段值的加入顺序应与打开索引 中各个字段的顺序相同
num{int} values 数组长度,该值不应超过在打开索引时的字段个数
返回
{bool} 是否成功

◆ build_del()

static bool acl::hsproto::build_del ( string out,
int  id,
const char *  values[],
int  num,
const char *  cond = "=",
int  nlimit = 0,
int  noffset = 0 
)
static

创建删除数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
values{const char*[]} 匹配字段值数组,字段值的加入顺序应与打开索引 中各个字段的顺序相同
num{int} values 数组长度,该值不应超过在打开索引时的字段个数
cond{const char*} 匹配条件,可以为:
nlimit{int} 结果集个数限制,0 表示不限制个数
noffset{int} 结果集开始位置(0表示从第一个结果开始)
返回
{bool} 是否成功

◆ build_get()

static bool acl::hsproto::build_get ( string out,
int  id,
const char *  values[],
int  num,
const char *  cond = "=",
int  nlimit = 0,
int  noffset = 0 
)
static

创建查询数据库记录的请求协议数据

参数
out{string&} 存储请求协议结果
id{int} 对应打开索引的表ID号
values{const char*[]} 匹配字段值数组,字段值的加入顺序应与打开索引 中各个字段的顺序相同
num{int} values 数组长度,该值不应超过在打开索引时的字段个数
cond{const char*} 匹配条件,可以为: = 等于; >= 大于等于; > 大于; < 小于; <= 小于等于
nlimit{int} 结果集个数限制,0 表示不限制个数
noffset{int} 结果集开始位置(0表示从第一个结果开始)
返回
{bool} 是否成功

◆ build_mod()

static bool int int const char static bool acl::hsproto::build_mod ( string out,
int  id,
const char *  values[],
int  num,
const char *  to_values[],
int  to_num,
const char *  cond = "=",
int  nlimit = 0,
int  noffset = 0 
)
static

创建修改数据库记录的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
values{const char*[]} 匹配字段值数组,字段值的加入顺序应与打开索引 中各个字段的顺序相同
num{int} values 数组长度,该值不应超过在打开索引时的字段个数
to_values{cosnt *[]} 匹配字段新值,字段值的顺序应与 open 方法中 的字段顺序相同
to_num{int} to_values 数组长度
cond{const char*} 匹配条件,可以为:
nlimit{int} 结果集个数限制,0 表示不限制个数
noffset{int} 结果集开始位置(0表示从第一个结果开始)
返回
{bool} 是否成功

◆ build_open()

static bool acl::hsproto::build_open ( string out,
int  id,
const char *  dbn,
const char *  tbl,
const char *  idx,
const char *  flds 
)
static

创建打开数据库索引的请求协议数据

参数
out{string&} 存储请求协议结果
id{int} 对应打开索引的表ID号
dbn{const char*} 数据库名称
tbl{const char*} 数据库表名
idx{const char*} 索引字段名
flds{const char*} 要打开的数据字段名集合,格式为 由分隔符 ",; \t" 分隔的字段名称,如:user_id,user_name,user_mail
返回
{bool} 是否成功

◆ build_request()

static bool int int const char static void acl::hsproto::build_request ( string out,
int  id,
const char *  oper,
const char *  values[],
int  num,
const char *  limit_offset,
char  mop,
const char *  to_values[],
int  to_num 
)
static

通用的创建数据库处理的请求协议数据

参数
out{string&} 存储请求协议数据
id{int} 对应打开索引的表ID号
oper{const char*} 操作方式,对应的操作符为: 添加: + 查询: =, >, >=, <, <= 修改: =, >, >=, <, <= 删除: =, >, >=, <, <=
values{const char*[]} 匹配字段值数组,字段值的加入顺序应与打开索引 中各个字段的顺序相同
num{int} values 数组长度,该值不应超过在打开索引时的字段个数
limit_offset{const char*} 要求的查询范围
mop{char} 仅针对删除,修改操作有效,其对应的操作符分别为: D: 删除, U: 修改
to_values{const char*[]} 目标值指针数组
to_num{int} to_values 数组的长度

◆ get()

const std::vector<hsrow*>& acl::hsproto::get ( )

当执行查询语句时,可以通过此函数获得查询的结果集

返回
{const std::vector<hsrow*>&}

◆ parse_respond()

bool acl::hsproto::parse_respond ( int  nfld,
string in,
int &  errnum_out,
const char *&  serror_out 
)

分析数据库的返回数据

参数
nfld{int} 打开的表的元素个数
in{string&} 从数据库读到的数据行, 尾部应该不包含 "\r\n"
errnum_out{int&} 存储处理过程的出错号,参见: hserror.hpp
serror_out{const char*&} 存储处理过程的出错描述信息
返回
{bool} 分析是否成功

◆ reset()

void acl::hsproto::reset ( )

当用户用完查询结果集后进行第二次查询时调用此函数清理上次查询结果

类成员变量说明

◆ first_value

static bool int int const char * acl::hsproto::first_value

在文件 hsproto.hpp60 行定义.

◆ id

static bool int acl::hsproto::id

在文件 hsproto.hpp60 行定义.

◆ nfld

static bool int int acl::hsproto::nfld

在文件 hsproto.hpp60 行定义.


该类的文档由以下文件生成: