问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Linux下用C/C++语言操作数据库sqlite3

发布网友 发布时间:2022-04-21 20:26

我来回答

1个回答

热心网友 时间:2022-04-07 17:57

1. 说明 这里我们假设你已经编译好了sqlite的库文件 : libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig 和可执行文件 : sqlite3 我们再假设你的sqlite3的安装目录在 /usr/local/sqlite3 目录下。 如果不是,我们可以这样做,将你的安装文件复制到 /usr/local/sqlite3 这个目录, 这样我们好在下面的操作中更加统一,从而减少出错的概率 例如:[root@localhost home]# cp -rf sqlite-3.3.8-ix86/ /usr/local/sqlite3 这里假设 /home/sqlite-3.3.8-ix86/ 是你的安装目录,也就是说你的sqlite原来就是安装在这里 这样之后,我们的sqlite3的库文件目录是:/usr/local/sqlite3/lib 可执行文件 sqlite3 的目录是: /usr/local/sqlite3/bin 头文件 sqlite3.h 的目录是: /usr/local/sqlite3/include 好拉,现在开始我们的Linux下sqlite3编程之旅。 2. 开始 这里我们现在进行一个测试。 现在我们来写个C/C++程序,调用 sqlite 的 API 接口函数。 下面是一个C程序的例子,显示怎么使用 sqlite 的 C/C++ 接口. 数据库的名字由第一个参数取得且第二个参数或更多的参数是 SQL 执行语句. 这个函数调用sqlite3_open() 在 16 行打开数据库,并且sqlite3_close() 在 25 行关闭数据库连接。 [root@localhost temp]# vi opendbsqlite.c 按下i 键切换到输入模式,输入下列代码:// name: opendbsqlite.c // This prog is used to test C/C++ API for sqlite3.It is very simple,ha! // Author : zieckey All rights reserved. // data : 2006/11/13 #include <stdio.h> #include <sqlite3.h> int main( void ) { sqlite3 *db=NULL; char *zErrMsg = 0; int rc; //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件 rc = sqlite3_open("zieckey.db", &db); if( rc ) { fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } else printf("You have opened a sqlite3 database named zieckey.db successfully! Congratulations! Have fun ! ^-^ "); sqlite3_close(db); //关闭数据库 return 0; } 退出,保存。(代码输入完成后,按下 Esc 键,然后输入: :wq ,回车就好拉) 好拉,现在编译:[root@localhost temp]# gcc opendbsqlite.c -o db.out 或者遇到这样的问题:[root@localhost temp]# gcc opendbsqlite.c -o db.out opendbsqlite.c:11:21: sqlite3.h: 没有那个文件或目录 opendbsqlite.c: In function `main': opendbsqlite.c:19: `sqlite3' undeclared (first use in this function) opendbsqlite.c:19: (Each undeclared identifier is reported only once opendbsqlite.c:19: for each function it appears in.) opendbsqlite.c:19: `db' undeclared (first use in this function) 这是由于没有找到头文件的原因。 也许会碰到类似这样的问题:[root@localhost temp]# gcc opendbsqlite.c -o db.out /tmp/ccTkItnN.o(.text+0x2b): In function `main': : undefined reference to `sqlite3_open' /tmp/ccTkItnN.o(.text+0x45): In function `main': : undefined reference to `sqlite3_errmsg' /tmp/ccTkItnN.o(.text+0x67): In function `main': : undefined reference to `sqlite3_close' /tmp/ccTkItnN.o(.text+0x8f): In function `main': : undefined reference to `sqlite3_close' collect2: ld returned 1 exit status 这是个没有找到库文件的问题。 下面我们着手解决这些问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果只有铬黑T试剂,能否测定钙离子,如何测定? 金银花茶的做法窍门 怎样制作金银花茶 怎么快速取消订单 有关"听"开头的成语 王卡看腾讯视频不显示免流 大王卡腾讯视频不显示免流 谁给推荐几部国产的好看的、卟幼稚的、新鲜的动画片 好看的、不幼稚的国产动画片有哪些? 太早的不要,要连续动画片 上传速度慢是什么原因? sqlite3_get_table()函数如何实现对两个时间点间... VC中用sqlite3如何获取数据库中的所有的表名? MFC中,如何连接sqlite3的数据库,并对此数据库操... VC 读取SQLite数据库中的表的数据,该怎么解决 数据库sqlite3 里:用函数sqlite3_get_table来获取... 怎样使用SQLite Sqlite3 语句解析 iPhone六16g扩容到64g多少钱? 苹果6sp手机11C内存改128C多少价? ipad32g扩容128g多少钱 户外灯具的分类有哪些 室外装饰灯有哪些种类 苹果手机改16g内存改128要多少钱 户外亮化要用哪些灯具 iphone手机升级内存多少钱 庭院灯和景观灯怎么区别 苹果六扩32g内存多少钱 别墅庭院路灯的高度一般为多少比较合?主要应用范... 苹果13扩容256g多少钱? 风水别墅的外屋柱上能安装照明灯吗? 关于sqlite3查询函数get_table的第三个参数的问题 如何在Linux下用C语言操作数据库sqlite3 sqlite3 exec怎么用 梦见燕子窝梦见别人家有燕子窝 这段代码谁能帮忙解释下 梦到燕子正在做窝? sqlite3_get_table函数查询出来的result记录集里,... sqlite_get_table为什么会自动创建表格 梦见燕子在家里面建窝是什么意思?还有红色的鸟在... c语言 sqlite get_table 时候segmentation fault 怎样可以使用sqlite3命令 有没有什么使用SQLite 3的管理工具 梦见自己家门上有个燕子窝,两个燕子捉虫喂一只小喜... sqlite3 如何选中要操作的数据库? 梦见两个燕子窝做在一起是什么回事 sqlite3执行create table后怎么返回sqlite ipad腾讯视频怎样倍速播放视频 VIVOX9S看腾讯视频怎么2倍加速? 在遭遇火灾的时候,我们该如何正确逃生? 当发生火灾的时候,我们该如何逃生?