我正在使用sqlite3 session extension的c API,想知道会话扩展是否可以用于合并已经写入文件的sqlite3会话。
遵循上面提到的教程,我能够通过将sqlite3会话逐个写入文件来注册它们,例如,对于UPDATE调用,我最终得到一个会话文件,而对于另一个INSERT调用,我得到另一个文件,等等。这些事务由UI按钮回调触发。我想知道会话文件是否可以以某种方式合并到一个单独的会话文件中。因此,使用这个合并的会话文件作为参数来调用sqlite3changeset_apply()时,我可能会得到与在会话文件列表上调用sqlite3changeset_apply()相同的结果。我之所以要这样做,是因为我只想传输一个会话文件,而不是一个会话文件夹。
我尝试在注册会话时对原始数据库的副本调用sqlite3changeset_apply()来迭代会话列表,但在这种情况下,我最终得到了一个大小为零的会话文件(尽管副本数据库将包含所有预期的更改),我在官方文档或Web上都找不到这方面的任何内容。
1条答案
按热度按时间8fsztsew1#
🧟♀️🧟🧟♂️死灵警报🧟♂️🧟🧟♀️
您可能正在查找
sqlite3changeset_concat
函数:此函数用于将两个变更集A和B连接为一个变更集。结果是一个变更集,相当于先应用变更集A,然后应用变更集B。
另外还有一个流媒体版本
sqlite3changeset_concat_strm
。如果需要合并许多变更集,可以使用类型
sqlite3_changegroup
及其关联函数。