2012-03-12 6 views
7

私のアプリケーションでsqliteデータベースを使用しました。私はこのデータベースをmysql server.Butと同期したいと思います。私のアプリケーションで新しいデータベースと既存のデータベースを置き換えるのは簡単だと思います。データインポートの問題も解決します。私はどのように私のURLから.sqliteファイルをダウンロードし、私のアプリケーションバンドルにそれを追加するか分からない。URLからsqliteデータベースをダウンロードし、アプリケーションにsqliteデータベースとして追加するにはどうすればいいですか?

簡単な方法で、実行時にXcodeリソースフォルダにファイルを追加したいと思います。私はそれを行う方法がありません。誰かが考えたら助けてください。

ありがとうございました。

+1

.sqliteファイルをダウンロードする理由は何ですか? MySQLサーバーを照会してから、ローカルスキーマを作成してテーブルを作成しませんか? – trojanfoe

+0

@trojanfoe:ありがとう、私はそれを行う方法を知りませんでした。私のローカルiPhoneのsqliteデータベースをMYSQLサーバーから更新するためのガイドラインをいくつか追加してください。 – Nit

答えて

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

ありがとうございます。仕事です。この "Database.sqlite"ファイルはどうやって見ることができますか?このファイルをXcodeグループフォルダに追加することはできますか? – Nit

+0

@Nit:Appの "Document"ディレクトリにダウンロードされます。これを確認するには、「iTunesファイル共有」を有効にします。 – Devang

+1

ドキュメントフォルダにダウンロードされると、ドキュメントフォルダから直接アクセスできます。なぜそれを「バンドル」に追加したいのですか?データベースがあなたのバンドルに入っていても、データベースをドキュメントフォルダにコピーしてから使用するのが良いでしょう。 – Satyam

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

+0

@ natasha:遅刻して申し訳ありませんが、Webサーバーからsqliteをダウンロードするには、Devangの前回の回答を参照してください。 – shripad20

関連する問題