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++的使用方式
|
||
|