美文网首页
Sqlite笔记

Sqlite笔记

作者: delta1037 | 来源:发表于2019-05-20 20:32 被阅读0次

在CLion中使用Sqlie

参考链接
在main.c文件顶部添加头文件
并修改CMakeList.txt为

#版本信息
cmake_minimum_required(VERSION 3.8)
#工程名称
project(sqlite_c)
#执行的c标准
set(CMAKE_C_STANDARD 99)
#添加外部头文件的目录,或者在/usr/local/include中
include_directories(/usr/include)
#在目录中查找sqlite这个文件,并赋值给SQLITELIB这个变量
find_library(SQLITELIB sqlite3 /usr/lib)
#
set(SOURCE_FILES main.c)
add_executable(sqlite_c ${SOURCE_FILES})
#为sqlite_c这个可执行文件添加库
target_link_libraries(sqlite_c ${SQLITELIB})

详细CMake参考

不使用CLion的方法

参考链接
不使用编译器,直接创建.c文件,在终端运行
如有错误:atal error: sqlite3.h: No such file or directory
则需安装一个函数库

$ sudo apt-get install libsqlite3-dev

在终端编译运行得到结果

$gcc test.c -l sqlite3
$./a.out
Opened database successfully

sqlite使用c语言实现数据库的增,减,删,查操作

实现交互

首先在程序中需要交互式操作,于是使用到了sqlite3_mprintf()函数
eg:

char *sql = sqlite3_mprintf("INSERT INTO STUDENT (ID,NAME,SCORE) VALUES(%d,%Q,%d);",ID,name,score);
ret =sqlite3_exec(db,sql,0,0,&zErrMsg);

将需要交互式输入内容的地方替换为格式符,及其后边有相应的变量

sqlite在c中的接口

参考链接
打开数据库

sqlite3_open(const char *filename, sqlite3 **ppDb)

该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。
如果 filename 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。
如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。

执行sqlite命令

sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)

该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。
在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。
sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。

关闭数据库

sqlite3_close(sqlite3*)

该例程关闭之前调用 sqlite3_open() 打开的数据库连接。所有与连接相关的语句都应在连接关闭之前完成。
如果还有查询没有完成,sqlite3_close() 将返回 SQLITE_BUSY 禁止关闭的错误消息。

示例

学生信息管理系统

相关文章

网友评论

      本文标题:Sqlite笔记

      本文链接:https://www.haomeiwen.com/subject/uyvlzqtx.html