数据库的基本内容前面都已经说得差不多了,接下看看怎样在C语言中使用sqlite。
一 接口
sqlite3_open(const char *filename,sqlite3 **ppDb)
打开数据库,如果数据库不存在则新建一个数据库,并打开
sqlite3_close(sqlite3*)
关闭数据库,如果关闭之前还存在没有执行完的语句,将会返回 sqlITE_BUSY
二 实例
1 目录结构
Projects{
main.c// 代码所在文件
sqlite{// 官网下载下来的sqlite压缩包解压之后的文件目录
shell.c// 本文件在项目中实际上是用不上的,这个文件是用来生成sqlite命令工具的,具体可以参考:sqlite学习笔记1
sqlite3.c
sqlite3.h
sqlite3ext.h
}
}
2 源代码
// main.c#include <stdio.h>#include <stdlib.h>#include "sqlite/sqlite3.h"#define DB_name "hanfeng.db"int main(){ sqlite3* db = NulL ; char* msg = NulL ; int ret = 0 ; ret = sqlite3_open(DB_name,&db); if (ret){ fprintf(stderr,"error open datebase:%s\n.",DB_name) ; exit(0) ; } else{ fprintf(stdout,"successfully open datebase.\n") ; } sqlite3_close(db) ; return 0;}
为了今后扩展方便,现将代码修改如下:
#include <stdio.h>#include <stdlib.h>#include "sqlite/sqlite3.h"#define DB_NANE "sqlite/test.db"sqlite3 *db = NulL;char* sql = NulL;char *zErrMsg = NulL;int ret = 0;typedef enum{ false,true} bool;static int callback(voID *NotUsed,int argc,char **argv,char **azColname){ int i = 0; for(i=0; i < argc; i++){ printf("%s = %s\n",azColname[i],argv[i] ? argv[i] : "NulL"); } printf("\n"); return 0;}bool connectDB(){ ret = sqlite3_open(DB_NANE,&db); if( ret != sqlITE_OK){ fprintf(stderr,"Error open database: %s\n",sqlite3_errmsg(db)); sqlite3_free(zErrMsg); return false; } fprintf(stdout,"Successfully opened database\n"); return true;}bool closeDB(){ int ret = 0; ret = sqlite3_close(db); if ( ret == sqlITE_BUSY ){ return false; } return true;}int main(int argc,char* argv[]){ connectDB(); closeDB(); return 0;}
运行有两种方式,基于前面的笔记,我们并没有配置sqlite的环境,仅仅是下载解压得到列一个文件夹sqlite,因此,需要用如下命令:
gcc -o main main.c ./sqlite/sqlite3.c -lpthread -ldl
如果下载配置安装了sqlite,则需要将上面的头文件包含改为:
#include <sqlite3.h>
然后执行命令:
gcc -o main main.c -lsqlite3
./main
既可以看到结果。
#在编译时使用g++会报错:error: invalID conversion from ‘const voID*’ to ‘const char*’
g++貌似对类型转换要求更为严格,不支持这样的转换。
路过的大侠,知道怎样用g++编译的,请指教......
总结以上是内存溢出为你收集整理的sqlite学习笔记7:C语言中使用sqlite之打开数据库全部内容,希望文章能够帮你解决sqlite学习笔记7:C语言中使用sqlite之打开数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)