电子产业一站式赋能平台

PCB联盟网

搜索
查看: 198|回复: 0
收起左侧

如何用C语言操作sqlite3,一文搞懂

[复制链接]

335

主题

335

帖子

3655

积分

四级会员

Rank: 4

积分
3655
发表于 2024-10-2 11:50:00 | 显示全部楼层 |阅读模式
点击左上方蓝色“一口Linux”,选择“设为星标
第一时间看干货文章
?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式知识点-思维导图-免费获取?【就业】一个可以写到简历的基于Linux物联网综合项目?【就业】找工作简历模版

k5zwakk5i0w64039493354.gif

k5zwakk5i0w64039493354.gif


n4amnto2tdc64039493454.jpg

n4amnto2tdc64039493454.jpg

嵌入式数据库sqlite3【基础篇】-基本命令操作,小白一看就懂

嵌入式数据库sqlite3【进阶篇】-子句和函数的使用,小白一文入门
sqlite3编程接口非常多,对于初学者来说,我们暂时只需要掌握常用的几个函数,其他函数自然就知道如何使用了。
数据库本篇假设数据库为my.db,有数据表student。
nonamescore4一口Linux89.0创建表格语句如下:
CREATE TABLE  IF NOT EXISTS student (no integer primary key, name text, score real);
常用函数sqlite3_openint   sqlite3_open(char  *path,   sqlite3 **db);
功能:
    打开sqlite数据库
参数:
path: 数据库文件路径
db: 指向sqlite句柄的指针,后面对数据库所有的操作都要依赖这个句柄
返回值:
成功返回0,失败返回错误码(非零值)
sqlite3_closeint   sqlite3_close(sqlite3 *db);
功能:
关闭sqlite数据库      
返回值:
成功返回0,失败返回错误码
const  char  *sqlite3_errmsg(sqlite3 *db);
功能:
打印错误信息        
返回值:
返回错误信息
不使用回调函数执行SQL语句sqlite3_get_table
int   sqlite3_get_table(sqlite3 *db, const  char  *sql,  char ***resultp,  int*nrow,  int *ncolumn, char **errmsg);
功能:
执行SQL操作
参数:
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:
成功返回0,失败返回错误码
举例下面比如我们要显示student表中所有的数据信息,我们就可以利用sqlite3_get_table()执行语句:
select * from student
实现代码如下:
void do_show_sample(sqlite3 *db)
{
  char **result, *errmsg;
int nrow, ncolumn, i, j, index;
if (sqlite3_get_table(db, "select * from student", &result, &nrow, &ncolumn, &errmsg) != 0)
{
  printf("error : %s
", errmsg);
  sqlite3_free(errmsg);
}
index = ncolumn;
for (i=0; ifor (j=0; jprintf("%-8s : %-8s
", result[j], result[index]);   
   index++;
  }
  printf("************************
");
}
sqlite3_free_table(result);
return;
}
假定当前的表格的数据信息如下:
nonamescore4一口Linux77.05一口peng88.06一口wang99.07一口网66.0关于这个函数中出现的这些参数的具体含义,我们可以见下图:
sqlite3编程接口非常多,对于初学者来说,我们暂时只需要掌握常用的几个函数,其他函数自然就知道如何使用了。
数据库本篇假设数据库为my.db,有数据表student。
nonamescore4一口Linux89.0创建表格语句如下:
CREATE TABLE  IF NOT EXISTS student (no integer primary key, name text, score real);
常用函数sqlite3_openint   sqlite3_open(char  *path,   sqlite3 **db);
功能:
    打开sqlite数据库
参数:
path: 数据库文件路径
db: 指向sqlite句柄的指针
返回值:
成功返回0,失败返回错误码(非零值)
sqlite3_closeint   sqlite3_close(sqlite3 *db);
功能:
关闭sqlite数据库      
返回值:
成功返回0,失败返回错误码
const  char  *sqlite3_errmsg(sqlite3 *db);
功能:
打印错误信息        
返回值:
返回错误信息
不使用回调函数执行SQL语句sqlite3_get_table
int   sqlite3_get_table(sqlite3 *db, const  char  *sql,  char ***resultp,  int*nrow,  int *ncolumn, char **errmsg);
功能:
执行SQL操作
参数:
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:
成功返回0,失败返回错误码
举例下面比如我们要显示student表中所有的数据信息,我们就可以利用sqlite3_get_table()执行语句:
select * from student
实现代码如下:
void do_show_sample(sqlite3 *db)
{
  char **result, *errmsg;
int nrow, ncolumn, i, j, index;
if (sqlite3_get_table(db, "select * from student", &result, &nrow, &ncolumn, &errmsg) != 0)
{
  printf("error : %s
", errmsg);
  sqlite3_free(errmsg);
}
index = ncolumn;
for (i=0; ifor (j=0; jprintf("%-8s : %-8s
", result[j], result[index]);   
   index++;
  }
  printf("************************
");
}
sqlite3_free_table(result);
return;
}
假定当前的表格的数据信息如下:
nonamescore4一口Linux77.05一口peng88.06一口wang99.07一口网66.0关于这个函数中出现的这些参数的具体含义,我们可以见下图:
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表