2012-03-12 20 views
7

Tôi đã sử dụng cơ sở dữ liệu sqlite trong ứng dụng của mình. Tôi muốn đồng bộ hóa cơ sở dữ liệu này với máy chủ mysql của tôi. Nhưng tôi nghĩ rằng việc thay thế cơ sở dữ liệu thoát với cơ sở dữ liệu mới trong ứng dụng của tôi là dễ dàng. tôi không biết làm thế nào tải về tập tin .sqlite từ url của tôi và thêm nó vào trong gói ứng dụng của tôi.Làm cách nào để tải xuống cơ sở dữ liệu sqlite từ url và thêm nó vào ứng dụng của chúng tôi dưới dạng cơ sở dữ liệu sqlite?

Theo cách đơn giản.Tôi muốn thêm tệp trong thư mục Tài nguyên Xcode vào thời gian chạy.I không làm cách nào để thực hiện. Xin hãy giúp tôi nếu có ai có ý tưởng.

Cảm ơn trước.

+1

Tại sao bạn tải xuống tệp .sqlite? Bạn sẽ không truy vấn máy chủ MySQL và sau đó tạo lược đồ cục bộ và điền các bảng? – trojanfoe

+0

@trojanfoe: Cảm ơn, tôi không biết cách làm điều đó. Vui lòng cung cấp thêm một số hướng dẫn để cập nhật cơ sở dữ liệu sqlite iPhone cục bộ của tôi từ máy chủ MYSQL. – Nit

Trả lời

6

Hãy thử đoạn mã sau:

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]; 

Bây giờ bạn có thể sử dụng tập tin cơ sở dữ liệu này.

+0

Thanks.It's work.How chúng ta có thể thấy tệp "Database.sqlite" này? Có thể thêm tệp này vào thư mục nhóm Xcode của tôi không? – Nit

+0

@Nit: Nó sẽ được tải xuống tại thư mục "Tài liệu" của ứng dụng. Bạn có thể xác minh điều này bằng cách cho phép "Chia sẻ tệp iTunes". – Devang

+1

Sau khi tải xuống thư mục tài liệu, bạn có thể truy cập trực tiếp từ thư mục tài liệu. Tại sao bạn muốn thêm nó vào "bó". Mặc dù nếu cơ sở dữ liệu nằm trong gói của bạn, nó luôn luôn tốt để sao chép cơ sở dữ liệu vào thư mục tài liệu và sau đó sử dụng nó. – Satyam

0

Để thêm cơ sở dữ liệu đã tải về ứng dụng của bạn như cơ sở dữ liệu SQLite thử đoạn mã sau

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]; 

Bây giờ cơ sở dữ liệu ứng dụng của bạn đã sẵn sàng với hồ sơ nhập khẩu.

+0

Tôi có một cơ sở dữ liệu mysql trong máy chủ web của tôi. Làm cách nào để tải xuống cơ sở dữ liệu đó dưới dạng cơ sở dữ liệu sqlite trong ứng dụng của tôi? – Natasha

+0

@natasha: Xin lỗi vì trả lời muộn, để tải xuống sqlite từ máy chủ web, bạn có thể tham khảo câu trả lời trước của Devang. – shripad20

Các vấn đề liên quan