在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})
不使用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 禁止关闭的错误消息。
网友评论