-1

我正在使用 sqlite3 和 iOS。

我的资源文件夹中有一个数据库“2012”。我在我的应用程序的目录文件夹中备份了它(命名为 2013),所以在那里,有数据库 2012 和 2013 具有相同的结构。

我制作了一个视图控制器,用户可以选择他想在 2012 年或 2013 年打开哪个数据库。

如何通过“2013”​​NSString 连接方法?

-(void)connect
{
NSLog(@"%c",restore); // restore is a BOOL that becomes "YES" when i click the button for restore

if (restore  == YES)
{
    databaseName = [NSString stringWithFormat:@"%@.db",currentYear];
}
else
{
    databaseName = @"2012.db";
}
NSLog(@"Database name is: %@",databaseName);

// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

NSLog(@"Database path is: %@",databasePath);

[self checkAndCreateDatabase];

}

我正在尝试发送年份值进行连接:

NSString *year = restoreYear.text;
DatabaseDB *databaseDB = [[DatabaseDB alloc]init];
databaseDB.currentYear = year; //in DatabaseDB i have created property for current year and restore
databaseDB.restore = YES;
4

2 回答 2

0

恢复功能表示您想回到拍摄快照的时间点。如果这是您真正想要的,您只需将备份的数据库复制到“活动”数据库的名称即可。或者,您可以先重命名您的活动副本,以便您可以撤消还原。

于 2013-11-16T11:41:09.613 回答
0

对不起,但上面的问题还不够清楚..

我的应用程序的资源文件夹中有一个 sqlite 数据库,当我运行应用程序时,数据库被复制到目录文件夹中,好吗?我有一个用户可以备份数据库的菜单,因此创建了第二个数据库。到现在一切正常。

当用户单击还原第二个数据库的按钮时,问题出在还原上。如何告诉数据库与第二个数据库连接?好的,我可以在连接方法中传递名称。接着?应用程序如何知道下次我打开应用程序时,将打开第二个数据库?

谢谢你。

于 2013-11-13T10:03:35.423 回答