【问题标题】:How to use two sqlite database files in single iOS project with simultaneously fetch data from both Database如何在单个 iOS 项目中使用两个 sqlite 数据库文件,同时从两个数据库中获取数据
【发布时间】:2016-12-17 22:11:15
【问题描述】:

我的要求是在我的项目中添加两个SQLite 数据库文件。我知道这是可能的。但是如何同时访问两个数据库文件呢?

目前我正在使用FMDB 来操作数据库操作。

注意:我的两个数据库文件大小都接近1GB。所以也想知道如果我使用 2 个 DB 文件,那么我的应用程序中是否会出现任何内存问题?

谢谢。

【问题讨论】:

标签: ios sqlite fmdb


【解决方案1】:

一般来说,一个项目很少需要2个数据库文件,特别是在我们只使用一个数据库的iOS中。

但根据您的要求,我们可以在具有多个数据库实例的单个项目中使用多个数据库文件。

要创建 2 个实例,请使用以下 SQLite Native 代码:

//Create Object of DataBase
static sqlite3 *databaseOne = nil;
static sqlite3 *databaseTwo = nil;

//Open Both Databases while we needed in our project 

//Open First Database
sqlite3_open([path UTF8String], &databaseOne);

//Opne Second Database
sqlite3_open([path UTF8String], &databaseTwo);

//prepare for statement execution

sqlite3_prepare_v2(databaseOne, [sql UTF8String], -1, &stmt, NULL)

sqlite3_prepare_v2(databaseTwo, [sql UTF8String], -1, &stmt, NULL)

但请确保在执行时不要混合这两个对象。

注意:在您的数据库任务完成时关闭两个连接。

要使用 FMDB 创建 2 个实例,请使用以下代码:

//First DB
FMDatabase *dbOne = [FMDatabase databaseWithPath:<your first DB file Path>];
[dbOne open];
//Do Your DB task
[dbOne close];

//Second DB 
FMDatabase *dbTwo = [FMDatabase databaseWithPath:<your second DB file Path>];
[dbTwo open];
//Do Your Second DB task
[dbTwo close];

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2011-10-12
    • 2019-08-06
    • 2018-12-22
    相关资源
    最近更新 更多