Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 增量真空_Ios_Sqlite_Fmdb - Fatal编程技术网

Ios 增量真空

Ios 增量真空,ios,sqlite,fmdb,Ios,Sqlite,Fmdb,如何使用FMDatabase实现SQLite数据库的增量清空 纯sqlite中的等效方法是准备语句“PRAGMA incremental_vacuum”,sqlite_在循环中按一定的批大小执行步骤,并最终完成该语句。然后重复操作,直到所有页面都被抽真空 这是如何与FMDatabase一起工作的?我找到的解决方案是在循环中执行此语句,直到batchAmount为0: [database executeStatements:[NSString stringWithFormat:"PRAGMA in

如何使用FMDatabase实现SQLite数据库的增量清空

纯sqlite中的等效方法是准备语句“PRAGMA incremental_vacuum”,sqlite_在循环中按一定的批大小执行步骤,并最终完成该语句。然后重复操作,直到所有页面都被抽真空


这是如何与FMDatabase一起工作的?

我找到的解决方案是在循环中执行此语句,直到batchAmount为0:

[database executeStatements:[NSString stringWithFormat:"PRAGMA incremental_vacuum(%d);", batchAmount]];
无效的方法:

  • 将“PRAGMA incremental\u vacuum(:BatchAmount)”与“BatchAmount”的参数字典条目一起使用会导致SQLite语法错误
  • 调用
    executeUpdate:
    导致FMDatabase错误,因为“PRAGMA”表示这是一个查询
  • 调用
    executeQuery:
    对文件大小没有影响

FMDB只是SQLite API的一个薄包装,因此您可能只需使用
PRAGMA
语句执行
executeUpdate