当前位置:网站首页>c sqlite...
c sqlite...
2022-08-04 19:33:00 【Hong Dayu】
#define DATABASE "drurmu.db"
#define READ 0x1
#define WRITE 0x2
#define EXEC 0x0
#define VALUE 0x6
#define INT32 0x10
#define STR 0x20
int32_t sqlite3_open_database(sqlite3 **sqlite) {
int32_t ret = sqlite3_open(DATABASE, sqlite);
if (ret != SQLITE_OK) {
printf("[USER DEBUG] sqlite3-> %s \n", sqlite3_errstr(ret));
return ret;
}
return SQLITE_OK;
}
int32_t sqlite3_exec_sql(sqlite3 *sqlite, int32_t mode, const char *sql,
void *value, int32_t _s) {
sqlite3_stmt *stmt = NULL;
int32_t ret = sqlite3_prepare_v2(sqlite, sql, strlen(sql), &stmt, NULL);
if (ret != SQLITE_OK) {
printf("[USER DEBUG] sqlite3-> %s \n", sqlite3_errstr(ret));
return ret;
}
switch (mode & 0xF) {
case EXEC:
if (sqlite3_step(stmt) == SQLITE_OK) {
return SQLITE_OK;
}
case READ:
if (sqlite3_step(stmt) == SQLITE_ROW) {
if ((mode & 0xF0) == INT32) {
*(int32_t *)value = sqlite3_column_int(stmt, VALUE);
} else if ((mode & 0xF0) == STR) {
int32_t size = strlen((const char *)sqlite3_column_text(stmt, VALUE));
if (value == NULL && _s < size) {
sqlite3_finalize(stmt);
return -3;
}
memcpy((char *)value, sqlite3_column_text(stmt, VALUE), size);
}
} else {
sqlite3_finalize(stmt);
return -5;
}
sqlite3_finalize(stmt);
return SQLITE_OK;
case WRITE:
if (sqlite3_step(stmt) == SQLITE_OK) {
return SQLITE_OK;
} else {
return -2;
}
default:
return -1;
}
return SQLITE_OK;
}
int32_t main(void) {
sqlite3 *sqlite;
int32_t ret = sqlite3_open_database(&sqlite);
if (ret != SQLITE_OK) {
printf("[USER DEBUG] sqlite3 open database error-> %s\n",
sqlite3_errstr(ret));
return -1;
}
char select[] = "select * from rmu where ID=\'0x0007\'";
char str[255];
bzero(str, 255);
sqlite3_exec_sql(sqlite, READ | STR, select, (void *)str, 255);
printf("%s\n", str);
int32_t INT;
bzero(select, strlen(select));
sprintf(select, "select * from rmu where ID=\'0x0002\'");
sqlite3_exec_sql(sqlite, READ | INT32, select, (void *)&INT, 0);
printf("%d\n", INT);
char add[] = "insert into rmu VALUES(\'0x1234\','hello "
"world','RW','uint1',1,20,0,0,0,0)";
sqlite3_exec_sql(sqlite, WRITE, add, NULL, 0);
return 0;
}
边栏推荐
猜你喜欢
随机推荐
How to monitor code cyclomatic complexity by refactoring indicators
如何理解 SAP UI5 的 sap.ui.define 函数
哈佛架构 VS 冯·诺依曼架构
量化交易机器人系统开发
win10 uwp MVVM 语义耦合
Switch node version and switch npm source tool
电脑一键重装系统后连不上远程了?教你设置的方法
企业应当实施的5个云安全管理策略
如何搭建 RADIUS 云服务器?
win10 uwp MVVM 轻量框架
TritonVM——基于Recursive STARK的虚拟机
To -.-- -..- -
切换node版本和切换npm源工具
Spark提交参数说明和常见优化
成品升级程序
前3名突然变了,揭秘 7 月编程语言最新排行榜
[Sql brush topic] Query information data--Day1
如果是测试 axi dma抓数的话 看这里
02 ts 变量定义,类型
零基础做出高端堆叠极环图








