根据文件:
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,我应该如何获得此功能?
答案 0 :(得分:1)
最简单的答案是不使用sqlite3_exec
,这只是一个方便的包装器。明确使用sqlite3_prepare_v2
,sqlite3_step
和sqlite3_column_*
(包括column_count和您的使用,column_name)。 (当然还有sqlite3_finalize
)。
如果您不确定如何执行此操作,则可以在源代码分发中轻松找到sqlite3_exec的实现,如src/legacy.c