1.sqlite3_open
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
功能:
打开数据库文件(创建一个数据库连接)
参数:
filename:数据库文件路径
ppDb:操作数据库指针存放空间的首地址
返回值:
成功返回SQLITE_OK
失败返回错误码
2.sqlite3_close
int sqlite3_close(sqlite3*);
功能:
关闭数据库连接
3.sqlite3_exec
int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
功能:
执行一条SQL语句
参数:
sqlite3*: 数据库句柄
sql: 要执行的SQL语句字符串首地址
callback: 只有在select时才会使用,其余调用时传递NULL
void*: 给回调函数的传参
errmsg:出错信息存放空间首地址(使用完毕后使用sqlite3_free释放空间)
返回值:
成功返回SQLITE_OK
失败返回错误码
每找到一次数据就会调用一次callback
callback的参数:1.void*是exec函数中第四个参数,将这个参数传到callback中, 2.int是找到有几列的列数col, 3.pcontent是找到的那几列数据字符串首地址的指针数组 4.ptitle是找到的那几列数据的标题的字符串首地址的指针数组
练习:
实现将dict.txt文件中的所有单词和含义插入到数据库中
5.调试段错误:
1.根据给定链接设置系统允许生成core文件
2.编译代码时加入-g选项
gcc filename.c -g -lsqlite3
3.执行代码让代码产生段错误(会生成一个包含错误信息的core文件)
4.使用gdb调试core文件
gdb a.out core
5.可以直接看到产生段错误的代码的位置