2012-03-12 46 views
7

我在我的應用程序中使用了sqlite數據庫。我想將這個數據庫與我的mysql服務器同步。但我認爲用我的應用程序中的新數據庫替換退出的數據庫很容易。因此,它也將解決數據導入導出問題。但我不知道如何從我的網址下載.sqlite文件並將其添加到我的應用程序包中。我們如何從url下載sqlite數據庫並將其作爲sqlite數據庫添加到我們的應用程序中?

以簡單的方式。我想在運行時在Xcode資源文件夾中添加文件。我不知道該怎麼做。 如果有人有想法,請幫助我。

在此先感謝。

+1

爲什麼要下載.sqlite文件?你不會查詢MySQL服務器,然後創建本地模式並填充表? – trojanfoe 2012-03-12 09:34:51

+0

@trojanfoe:謝謝,我不知道該怎麼做。請提供一些更多的指導方針,以便從MYSQL服務器更新我的本地iPhone sqlite數據庫。 – Nit 2012-03-12 12:51:28

回答

6

嘗試下面的代碼:

NSData *dbFile = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.someurl.com/DatabaseName.sqlite"]]; 

NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]]; 

NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"Database.sqlite"]; 

[dbFile writeToFile:filePath atomically:YES]; 

現在你可以使用這個數據庫文件。

+0

Thanks.It的工作。我們如何看到這個「Database.sqlite」文件?是否可以在我的Xcode組文件夾中添加此文件? – Nit 2012-03-12 10:01:28

+0

@Nit:將在App的「文檔」目錄下載。您可以通過啓用「iTunes文件共享」來驗證。 – Devang 2012-03-12 10:06:05

+1

將它下載到文檔文件夾後,可以直接從文檔文件夾訪問它。你爲什麼要把它添加到「捆綁」。即使數據庫位於您的包中,但始終可以將數據庫複製到文檔文件夾然後使用它。 – Satyam 2012-03-12 10:09:33

0

要下載的數據庫添加到您的應用程序SQLite數據庫試試下面的代碼

NSString *dbfilepath = [FileUtils documentsDirectoryPathForResource:[NSString stringWithFormat:@"%@.db", @"downloadedDatabase"]]; 
NSData *dbData = [NSData dataWithContentsOfFile:dbfilepath]; 

NSString *filePath = [[FileUtils documentsDirectoryPath] stringByAppendingPathComponent:@"Database.sqlite"]; 

[dbData writeToFile:filePath atomically:YES]; 

現在您的應用程序的數據庫已經準備好與進口的記錄。

+0

我有一個在我的web服務器的mysql數據庫。我如何在我的應用程序中將該數據庫作爲sqlite數據庫下載? – Natasha 2015-12-28 20:14:11

+0

@natasha:抱歉,遲到的回覆,從web服務器下載sqlite,你可以參考前面Devang的回答。 – shripad20 2016-01-14 04:31:40

相關問題