数据表设计
- create table tbl_emp(
- id integer primary key ,
- name varchar(40),
- age smallint,
- birthday datetime);
sqlite3是数据库连接对象,用来操作数据库
打开数据库对象函数
- int sqlite3_open(
- const char *filename, /*数据库文件名 */
- sqlite3 **ppDb /* 创建的数据库连接对象*/
- );
关闭数据库对象函数
- int sqlite3_close(sqlite3 */*打开的数据库连接对象*/);
返回数据库错误消息
- const char *sqlite3_errmsg(sqlite3*);
编译过程
- gcc v1.c
- -o v1
- -I/usr/local/sqlite3/include
- -L/usr/local/sqlite3/lib
- -lsqlite3
- gcc v1.c -o v1 -I/usr/local/sqlite/include -L/usr/local/sqlite/lib -lsqlite3
- export LD_LIBRARY_PATH=/usr/local/sqlite/lib:$LD_LIBRARY_PATH
- ./v1
执行sql语句函数
- int sqlite3_exec(
- sqlite3*, /* 打开的数据库连接对象*/
- const char *sql, /* 将要执行的sql语句*/
- int (*callback)(void*,int,char**,char**), /* 回调函数*/
- void *, /* 回调函数的第一个参数*/
- char **errmsg /* 错误的消息*/
- );
查询函数
- int sqlite3_get_table(
- sqlite3 *db, /*数据库连接对象*/
- const char *zSql, /*将要执行的sql语句*/
- char ***pazResult, /* 查询的结果集 */
- int *pnRow, /* 结果集的行数*/
- int *pnColumn, /*结果集的列数*/
- char **pzErrmsg /* 查询的错误消息*/ );
释放结果集函数
- void sqlite3_free_table(char **result);
使用回调函数查询
回调函数
- int (*callback)(
- void*,/*从sqlite3_exec传递来的参数*/
- int,/*结果集的列数*/
- char**, /*列的值*/
- char**/*列的名字*/
- )
预处理对象
- int sqlite3_prepare(
- sqlite3 *db, /* 数据库连接对象*/
- const char *zSql, /*将要执行的sql语句*/
- int nByte, /* sql语句的长度 -1*/
- sqlite3_stmt **ppStmt, /* sqlite3_stmt对象 */
- const char **pzTail /* 指向执行的sql语句 0*/
- );
其它函数
- int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));
- int sqlite3_step(sqlite3_stmt*);
- const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
- int sqlite3_finalize(sqlite3_stmt *pStmt);
预处理对象重复使用
- int sqlite3_reset(sqlite3_stmt*);