sqlite3_exec回调函数以及sqlite3_get_table函数

sqlite3的C/C++接口API主要有3个重要函数

1、sqlite3_open()

原型:sqlite3_open(const char *filename, sqlite3 **ppDb)

功能:打开或创建一个数据库文件

2、sqlite3_close()

原型:sqlite3_close(sqlite3*db)

功能:关闭数据库

3、sqlite3_exec()

原型:sqlite3_exec(sqlite3* db, const char *sql, sqlite_callback, void *data, char **errmsg)

功能:执行sql语句,需要用到回调函数

        sqlite3 *db:打开数据库

        const char *sql:执行sql功能语句

        sqlite_callback:回调函数,每成功执行一次sql语句就执行一次callback函数

        void *data:传递给回调函数的指针参数

        char **errmsg:错误信息

        第二个参数表示相应的sql语句,如果我们直接在Linux下,使用shell是可以实现所有sqlite功能的,但是如果进行C++/C开发程序时,很明显是没有shell可用的,但是这个*sql就是对应sqlite功能命令的“字符串”。

        第三个参数则是*sql功能命令对应的回调函数,所谓的回调函数的意思是,会先执行*sql对应的功能命令,然后将结果传递给回调函数,回调函数根据结果再进一步执行,所以我们所需要的功能通过回调来实现。

4、sqlite3_get_table()

原型: sqlite3_get_table( sqlite3* db , const char* sql , char*  **dResult , int *nRow , int *nColnm , char **errMsg );

功能:可以直接对select结果进行操作而不需要回调

        sqlite3 *db:打开数据库

        const char *sql:执行sql功能语句

        **dbResult:查询结果

        *nRow:查询多少条记录(即查出多少行)

        *nColumn:多少个字段(多少列)

        *errMsg:错误信息

        第三个参数是查询结果,它依然是一维数组(不要以为是二维数组,更不要以为是三维数组)。它的内存布局是:第一行是字段名称,后面紧接着是每个字段的值。 sqlite3_get_table()和sqlite3_exec()这种使用回调函数的方式不同,sqlite3_get_table()的功能要显得更加直接。它通过控制语句的传入,直接将参数赋值给指针传出。

你可能感兴趣的:(数据库,C语言,数据库)