【问题标题】:Sqlite C user defined functionSqlite C 用户定义函数
【发布时间】:2009-01-29 20:12:40
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: c sqlite function


    【解决方案1】:

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

    或者使用quickstart guide中看到的回调

    【讨论】:

      【解决方案2】:

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

      这种机制并不比使用全局变量难多少,而且如果您以后决定这样做,它还支持多线程应用程序。

      【讨论】:

        猜你喜欢
        • 2019-08-16
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 2011-12-13
        • 2017-09-06
        • 2011-09-05
        相关资源
        最近更新 更多