使用C语言 *** 作Sqlite数据库

使用C语言 *** 作Sqlite数据库,第1张

概述http://blog.chinaunix.net/uid-20680669-id-3124348.html 在工作中,我总是使用编译后sqlite3可执行程序,进行数据库的创建;其实我们 *** 作sqlite数据库, 也可是使用源代码级别的形式去 *** 作数据库。我在网上查找,对部分代码进行修改,添加上注释, 形式如下代码,其中包含对数据表的创建,添加数据,查询数据功能,代码如下: #include <st http://blog.chinaunix.net/uID-20680669-ID-3124348.HTML

在工作中,我总是使用编译后sqlite3可执行程序,进行数据库的创建;其实我们 *** 作sqlite数据库,
也可是使用源代码级别的形式去 *** 作数据库。我在网上查找,对部分代码进行修改,添加上注释,
形式如下代码,其中包含对数据表的创建,添加数据,查询数据功能,代码如下:
#include<stdio.h>
#include<sqlite3>

//查询的回调函数声明
intselect_callback(voID*data,intcol_count**col_values*col_name);

intmain(intargc*argv[])
{
constchar*ssql1="create table users(userID varchar(20) PRIMARY KEY,age int,birthday datetime);";
char*pErrMsg=0;
intresult;
/连接数据库
sqlite3*dbintret=sqlite3_open"./test.db"&dbif(ret!=sqlITE_OK{
fprintf(stderr"无法打开数据库: %s"(db;
return(1}
printf"数据库连接成功!\n";

/执行建表sql
sqlite3_exec0&pErrMsg"sql error: %s\n";
sqlite3_free(pErrMsg}

/执行插入记录sql
result=sqlite3_exec"insert into users values('张三',20,'2011-7-23');"(result={
printf"插入数据成功\n"}
result"insert into users values('李四','2012-9-20');"/查询数据表
printf"查询数据库内容\n";
sqlite3_exec"select * from users;"/关闭数据库
sqlite3_close;
db;
printf"数据库关闭成功!\n";

return 0}

/每条记录回调一次该函数 intifor(i;i<col_count+"%s = %s\n"[i?"NulL":col_values}

return 0} 编写好代码后,我们需要进行编译。
我使用的ubuntu10.04自带的gcc编译器gcc4.4.3进行编译。
如果你使用 $ gcc sqlitetest.c
进行编译时,会出现如下的错误:
/tmp/ccyxvdme.o: In function `main':
sqlitetest.c:(.text+0x31): undefined reference to `sqlite3_open'
sqlitetest.c:(.text+0x48): undefined reference to `sqlite3_errmsg'
sqlitetest.c:(.text+0xa5): undefined reference to `sqlite3_exec'
sqlitetest.c:(.text+0xd6): undefined reference to `sqlite3_free'
sqlitetest.c:(.text+0x102): undefined reference to `sqlite3_exec'
sqlitetest.c:(.text+0x12e): undefined reference to `sqlite3_exec'
sqlitetest.c:(.text+0x15a): undefined reference to `sqlite3_exec'
sqlitetest.c:(.text+0x166): undefined reference to `sqlite3_close'
collect2: ld returned 1 exit status
这是因为gcc找不到定义sqlite3_open等等的头文件,经过在网上查找资料,
找到了解决方法,使用如下的方法进行编译:
$ gcc -o hello -L /usr/local/sqlite-autoconf-3070400/lib -I/usr/local/sqlite-autoconf-307040/include sqlitetest.c -lsqlite3
上面的编译主要意义时-L 代码你安装sqlite3类库所在的路径, -I代表安装sqlite3的头文件路径 而-l表示
可执行程序的名称
经过上面的编译,即可成功。
执行结果如下:
~$ ./hello
数据库连接成功!
插入数据成功
插入数据成功
查询数据库内容
userID = 张三
age = 20
birthday = 2011-7-23
userID = 李四
age = 20
birthday = 2012-9-20
数据库关闭成功!


sqlitetest.rar 总结

以上是内存溢出为你收集整理的使用C语言 *** 作Sqlite数据库全部内容,希望文章能够帮你解决使用C语言 *** 作Sqlite数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1165959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存