SQLite替代已弃用的PRAGMA empty_result_callbacks

时间:2014-06-25 22:58:01

标签: sqlite

根据文件:

When empty-result-callbacks is set in this situation, the callback function
is invoked exactly once, with the third parameter set to 0 (NULL). This is to 
enable programs that use the sqlite3_exec() API to retrieve column-names even 
when a query returns no data.

我需要在我的程序中使用这个功能,但是文档进一步说明了这个pragma已被弃用,不应该在新的应用程序中使用。然而,它并没有说明替代方案是什么。如果不推荐使用此pragma,我应该如何获得此功能?

1 个答案:

答案 0 :(得分:1)

最简单的答案是不使用sqlite3_exec,这只是一个方便的包装器。明确使用sqlite3_prepare_v2sqlite3_stepsqlite3_column_*(包括column_count和您的使用,column_name)。 (当然还有sqlite3_finalize)。

如果您不确定如何执行此操作,则可以在源代码分发中轻松找到sqlite3_exec的实现,如src/legacy.c