打印
[嵌入式linux]

C语言用什么语句将数据存入sqlite3数据库?

[复制链接]
3243|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
uitxt|  楼主 | 2014-2-13 20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 uitxt 于 2014-2-13 20:49 编辑

C语言用什么语句将数据存入sqlite3数据库?
现有变量a1=1,a2=2,a3=3,a4=4,用什么语句将该4个变量以及值存储到数据库中?要求不能覆盖掉,要依次存储。第一列为变量名,第二列为变量值。
另外用什么语句将数据从数据库中读取出来?并将相应的值赋值给相应的变量名?

相关帖子

沙发
dirtwillfly| | 2014-2-13 21:21 | 只看该作者

使用特权

评论回复
板凳
uitxt|  楼主 | 2014-2-13 23:20 | 只看该作者
本帖最后由 uitxt 于 2014-2-14 11:04 编辑
dirtwillfly 发表于 2014-2-13 21:21
SQLite3 C语言API入门:
http://www.blogjava.net/xylz/archive/2012/09/25/388519.html

我的对表格插入数据的语句sprintf(sql,"insert into t(id,name,value) values(1,'a1','%d')",a1);  
但是编译后后报错如下
In function 'main':
warning: passing argument 1 of 'sprintf' discards qualifiers from pointer target type
是哪里的问题,如何解决?

使用特权

评论回复
地板
msblast| | 2014-2-14 00:16 | 只看该作者
uitxt 发表于 2014-2-13 23:20
我的对表格插入数据的语句sprintf(sql,"insert into t(id,name,value) values(1,'a1','%ld')",a1);  
但 ...

建议
1、编译windows版本运行,熟悉Sqlite命令;看c语言API相关文档。
2、加强c语言基础。

单引号前应该加转义字符\

使用特权

评论回复
5
香水橙| | 2014-2-14 09:30 | 只看该作者
检查一下sql的定义。

这个%ld是什么?

使用特权

评论回复
6
uitxt|  楼主 | 2014-2-14 10:58 | 只看该作者
本帖最后由 uitxt 于 2014-2-14 11:00 编辑
香水橙 发表于 2014-2-14 09:30
检查一下sql的定义。

这个%ld是什么?

我的是在LINUX下编译,%ld代表长整型,用%d也是同样的报错
sql的定义我看过了,我还是找不出我的错在哪里?

使用特权

评论回复
7
chinaye1| | 2014-2-14 16:12 | 只看该作者
请调用 sqlite3_exec 函数

使用特权

评论回复
8
uitxt|  楼主 | 2014-2-14 17:25 | 只看该作者
chinaye1 发表于 2014-2-14 16:12
请调用 sqlite3_exec 函数

sqlite3_exec(db,sql,0,0,&zErrMsg);
这个已经调用了,不是这个语句的问题,应该是sprintf(sql,"insert into t(id,name,value) values(1,'a1','%d')",a1);  这个语句有问题,但是我不知道出错在哪里

使用特权

评论回复
9
辛楠不菲| | 2015-11-16 17:59 | 只看该作者
'%d'不要加单引号,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

121

帖子

1

粉丝