|
|
@@ -27,27 +27,31 @@ SQLite 是一个小型,快速,独立的高可靠性全功能 SQL 数据库
|
|
|
RT-Thread online packages --->
|
|
|
system packages --->
|
|
|
--- SQLite: a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine.
|
|
|
- (/rt.db) Database name(path)
|
|
|
(1024) SQL statements max length
|
|
|
[*] Enable example
|
|
|
```
|
|
|
|
|
|
配置项说明:
|
|
|
|
|
|
-| 名称 | 说明 |
|
|
|
-| ------------------------- | ------------------------------------------------------------------------------------- |
|
|
|
-| Database name(path) | 数据库文件名称,应包含文件路径及文件名,默认将数据库文件存放在根目录下,文件名为rt.db |
|
|
|
-| SQL statements max length | SQL语句最大长度,请根据实际业务需求设置。 |
|
|
|
-| Enable example | 选择是否使能DAO层例程,例程是模拟了学生成绩录入查询 |
|
|
|
+| 名称 | 说明 |
|
|
|
+| ------------------------- | --------------------------------------------------- |
|
|
|
+| SQL statements max length | SQL语句最大长度,请根据实际业务需求设置。 |
|
|
|
+| Enable example | 选择是否使能DAO层例程,例程是模拟了学生成绩录入查询 |
|
|
|
|
|
|
## 依赖
|
|
|
- RT-Thread 3.X+
|
|
|
- DFS组件
|
|
|
-## dbhelper接口说明
|
|
|
+## dbhelp接口说明
|
|
|
|
|
|
-dbhelper是对sqlite3操作接口的封装,目的是使用户更加简单地操作sqlite。
|
|
|
+dbhelp是对sqlite3操作接口的封装,目的是使用户更加简单地操作sqlite。
|
|
|
+
|
|
|
+### 数据库文件完整路径
|
|
|
+数据库文件的默认存放完整路径是"/rt.db",用户可根据实际需求在dbhelper.h中修改。
|
|
|
+```c
|
|
|
+#define DB_NAME "/rt.db"
|
|
|
+```
|
|
|
### 初始化
|
|
|
-dbhelper初始化,其中包含了sqlite的初始化及互斥量创建。用户无需再对数据库及锁初始化。
|
|
|
+dbhelp初始化,其中包含了sqlite的初始化及互斥量创建。用户无需再对数据库及锁初始化。
|
|
|
```c
|
|
|
int db_helper_init(void);
|
|
|
```
|
|
|
@@ -68,8 +72,6 @@ int db_create_database(const char *sqlstr);
|
|
|
| 返回 | |
|
|
|
| 0 | 成功 |
|
|
|
| 非0 | 失败 |
|
|
|
-
|
|
|
-
|
|
|
输入形参sqlstr应当是一条创建表的SQL语句,例:
|
|
|
```c
|
|
|
const char *sql = "CREATE TABLE student(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(32) NOT NULL,score INT NOT NULL);";
|
|
|
@@ -89,8 +91,6 @@ int db_nonquery_operator(const char *sqlstr, int (*bind)(sqlite3_stmt *, int ind
|
|
|
| 返回 | |
|
|
|
| 0 | 成功 |
|
|
|
| 非0 | 失败 |
|
|
|
-
|
|
|
-
|
|
|
注:该接口请勿用于查询类操作。
|
|
|
bind需要用户实现:
|
|
|
| 参数 | 说明 |
|
|
|
@@ -118,8 +118,6 @@ int db_nonquery_by_varpara(const char *sql, const char *fmt, ...);
|
|
|
| 返回 | |
|
|
|
| 0 | 成功 |
|
|
|
| 非0 | 失败 |
|
|
|
-
|
|
|
-
|
|
|
注:该接口请勿用于查询类操作。
|
|
|
例:
|
|
|
```c
|
|
|
@@ -135,7 +133,6 @@ db_nonquery_transaction开启了事务功能,支持操作失败后回滚。
|
|
|
```c
|
|
|
int db_nonquery_transaction(int (*exec_sqls)(sqlite3 *db, void *arg), void *arg);
|
|
|
```
|
|
|
-
|
|
|
| 参数 | 说明 |
|
|
|
| --------- | ---------------------------------------------- |
|
|
|
| exec_sqls | SQL执行回调 |
|
|
|
@@ -152,8 +149,6 @@ exec_sqls:
|
|
|
| 返回 | |
|
|
|
| SQLITE_OK或SQLITE_DONE | 成功 |
|
|
|
| 其他 | 失败(如果用户提供的exec_sqls返回失败,db_nonquery_transaction将执行回滚操作) |
|
|
|
-
|
|
|
-
|
|
|
注:该接口请勿用于查询类操作。
|
|
|
db_nonquery_transaction的自由度比较大,内部开启事务后就开始执行exec_sqls,用户可在exec_sqls通过调用SQLite的接口进行相关的数据库操作。执行完exec_sqls后提交事务。如果有失败情况会回滚。
|
|
|
|
|
|
@@ -195,7 +190,6 @@ int db_query_count_result(const char *sql);
|
|
|
| 返回 | |
|
|
|
| 非负值 | 符合条件的条目的数量 |
|
|
|
| 负数 | 查询失败 |
|
|
|
-
|
|
|
例如,查询数据库中表的数量:
|
|
|
```c
|
|
|
nums = db_query_count_result("select count(*) from sqlite_master where type = 'table';");
|