38 lines
1.2 KiB
Markdown
38 lines
1.2 KiB
Markdown
|
|
# mix_cc::sql
|
|||
|
|
|
|||
|
|
## 一个简易的,高效的c++ sql接口和查询库
|
|||
|
|
|
|||
|
|
## 项目依赖
|
|||
|
|
1. 编译器最低支持 c++17/20 (17会导致一处的异常处理无法使用)
|
|||
|
|
2. sqlapi++
|
|||
|
|
3. boost 1.75(min)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 目前支持的字段包括
|
|||
|
|
1. select
|
|||
|
|
2. from
|
|||
|
|
3. where
|
|||
|
|
4. insert_into
|
|||
|
|
5. update
|
|||
|
|
6. set
|
|||
|
|
7. delete_from
|
|||
|
|
|
|||
|
|
## 使用流程
|
|||
|
|
1. 使用make_table中的宏MIX_CC_SQL_MAKE_TABLE(表名,(列属性1,列名1),(列属性2,列名2),...(列属性n,列名n),) n <= 40 构建目标表
|
|||
|
|
2. 使用sql字段构建sql语句,如
|
|||
|
|
```c++
|
|||
|
|
auto sql_statement =
|
|||
|
|
select(t_rule_cfg.algId(), t_rule_cfg.ruleId(), t_rule_cfg.ruleName(),
|
|||
|
|
t_rule_cfg.flag(), t_rule_cfg.ruleParam())
|
|||
|
|
.from(t_rule_cfg).where(t_rule_cfg.aldId()==40);
|
|||
|
|
```
|
|||
|
|
3. 使用exec<db_type>(sql_statement)函数执行sql语句(其中查询的exec不同,为exec(表名,sql语句))
|
|||
|
|
4. 使用auto类型接受exec函数的执行结果,其中查询为表的行数组,其它为受影响的行数
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
1. 目前支持的数据库类型仅为db2
|
|||
|
|
2. 目前支持的数据类型包含 int,double,char,string,mix_cc::mix_time(对应db2中time_stamp)
|
|||
|
|
3. 目前字符不支持特殊字符,需要更改对sqlapi++的使用方式
|
|||
|
|
|