2012-03-12 14 views
7

Utilicé la base de datos sqlite en mi aplicación. Quiero sincronizar esta base de datos con mi servidor mysql. Pero creo que es fácil reemplazar la base de datos saliente con nueva en mi aplicación. Así que también resolverá los problemas de exportación de importación de datos. No sé cómo descargar el archivo .sqlite de mi url y agregarlo en mi paquete de aplicaciones.¿Cómo podemos descargar la base de datos sqlite desde url y agregarla a nuestra aplicación como base de datos sqlite?

De manera simple. Quiero agregar archivos en la carpeta de recursos de Xcode en tiempo de ejecución. No sé cómo hacerlo. Por favor, ayúdenme si alguien tiene idea.

Gracias de antemano.

+1

¿Por qué descargaría el archivo .sqlite? ¿No consultaría el servidor MySQL y luego crearía el esquema local y llenaría las tablas? – trojanfoe

+0

@trojanfoe: Gracias, no sabía cómo hacerlo. Proporcione algunas pautas más para actualizar mi base de datos local de iPhone sqlite del servidor MYSQL. – Nit

Respuesta

6

Try siguiente código:

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

Ahora usted puede utilizar este archivo de base de datos.

+0

Gracias. Es el trabajo. ¿Cómo podemos ver este archivo "Database.sqlite"? ¿Es posible agregar este archivo en mi carpeta de grupo de Xcode? – Nit

+0

@Nit: se descargará en el directorio "Documento" de la aplicación. Puede verificar esto habilitando "iTunes File Sharing". – Devang

+1

Una vez que se descarga a la carpeta de documentos, puede acceder directamente desde la carpeta de documentos. ¿Por qué quieres agregarlo a "paquete"? Aunque la base de datos está en su paquete, siempre es bueno copiar la base de datos a la carpeta de documentos y luego usarla. – Satyam

0

Para agregar la base de datos descargados a su aplicación como base de datos SQLite tratar siguiente código

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

Ahora su base de datos de aplicación está lista con los registros importados.

+0

Tengo una base de datos mysql que está en mi servidor web. ¿Cómo puedo descargar esa base de datos como base de datos sqlite en mi aplicación? – Natasha

+0

@natasha: Lo siento por la respuesta tardía, para descargar sqlite desde el servidor web, puede consultar la respuesta anterior de Devang. – shripad20

Cuestiones relacionadas