当前位置:网站首页>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;
}
边栏推荐
猜你喜欢
随机推荐
Quantitative trading robot system development
笔记本WIFI无法上网(无Internet访问权限)
[Latest Information] 2 new regions will announce the registration time for the soft exam in the second half of 2022
win10 uwp MVVM 语义耦合
Switch node version and switch npm source tool
internship:改了需求
openharmony代码框架初识(2)
How to monitor code cyclomatic complexity by refactoring indicators
如何让远在的老板看到你!----------来自财富中国网
zynq 记录
Industrial CCD and CMOS camera
企业应当实施的5个云安全管理策略
Openharmony first experience (1)
【有奖征文】秋招特训,打造你的专属产品体验
使用.NET简单实现一个Redis的高性能克隆版(二)
Chrome 开发者工具 performance 标签页的用法
In July 2022, domestic database memorabilia
小波提取特征的VQ实现
Highlights of some performance tests
Seata source code analysis: various message processing processes of seata server