Sqlite C用户定义的函数

时间:2009-01-29 20:12:41

标签: c sqlite function

我正在使用sqlite C API “Everything”在主函数中运行(变量,打开,执行查询,关闭数据库等) 另外,我现在想要创建单独的用户定义函数,例如,对数据库进行排序。

将db对象和变量从main传递给这个新函数的最佳方法是什么?将它们全部创建为全局变量?通过参考传递?这是Sqlite3_create_function的用途吗?

如果需要,请告诉我如何澄清这个问题。

感谢。

2 个答案:

答案 0 :(得分:1)

sqlite3_create_function需要void *pApp个参数。目的是指向您的函数使用的数据。指针存储在SQLite托管函数上下文中。您可以使用sqlite3_user_data从用户函数中返回此指针。由于您分配了内存,因此可以在应用程序和函数之间共享它。

这种机制并不比使用全局变量困难,并且如果您决定稍后再这样做,则支持多线程应用程序。

答案 1 :(得分:1)

将sqlite3 * db指针作为参数传递给函数。

或者使用quickstart guide

中的回调