Añadir una Base de Datos SQLite a nuestra aplicación iPhone

mislata

Mislata
Añadir una Base de Datos SQLite a nuestra aplicación iPhone

En este tutorial vamos a explicar como integrar una Base de Datos SQLite a nuestro desarrollo.

1. Creación de la Base de Datos:

Pués bien, para empezar lo primero que vamos a necesitar es un programa para crear y administrar nuestra Base de Datos. Por ejemplo podéis usar SQLite Manager, un add-on que viene con Firefox.

Para esto solo tenéis que descargar e instalar Firefox, y una vez hecho esto en la pestaña Herramientas, seleccionar Complementos. Ahora nos vamos a Obtener Complementos y buscamos una SQLite Manager. Una vez instalado este complemento ya podremos crear y administrar nuestra base de datos.


Ahora tenemos que abrir este complemento de Firefox, con él podremos crear una base de datos a la que llamaremos “DB_Ejemplo”, y añadir-le una nueva Tabla a la que llamaremos Ejemplos y que contendrá dos campos: IdEjemplo (INTEGER y clave primaria) y Descripción (TEXT). Añadir también algo de información a la tabla.

Una vez hecho esto tenemos que coger el archivo de de base de datos que hemos creado: DB_Ejemplo.sqlite y añadir-lo a nuestro proyecto de xCode, dentro de la carpeta Resources.

2. Integrar SQLite en nuestra aplicación:

Hasta aquí la parte que toca a la creación de la base de datos. Ahora vamos a añadir las librerias necesarias en nuestro proyecto para manejar SQLite y vamos a realizar algún ejemplo de como conectar con la Base de Datos y ejecutar alguna sentencia SQL para recuperar información de la tabla que hemos creado.

Lo primero que haremos es añadir el framework de SQLite a nuestra carpeta de Frameworks. Así que hacemos botón derecho en la carpeta Frameworks de nuestro proyecto, add Existing Frameworks y seleccionamos libsqlite3.0.dylib.


Genial, ahora crearemos una clase para manejar el acceso a la base de datos, la llamaremos ManageDB. Dentro de esta clase, importaremos las liberarías de SQLite y crearemos una variable que nos servirá para poder manejar nuestra base de datos. Además añadiremos también una función que nos abrirá nuestra base de datos y nos creará ejecutará una sentencia SQL contra ella.

ManageDB.h:



#import <Foundation/Foundation.h>
#import <sqlite3.h>
interface ManageDB : NSObject {
sqlite3 *database;

}
-(NSMutableArray *) VistaEjemplos;

end


ManageDB.m:


#import "ManageDB.h"
implementation ManageDB
-(NSMutableArray *) VistaEjemplo{
NSMutableArray *arrayEjemplos=[[NSMutableArray alloc] init];
try {
NSFileManager *fileManager=[NSFileManager defaultManager];
NSString *theDBPath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:"DB_Ejemplo.sqlite"];
//comprobamos que existe el fichero

BOOL success=[fileManager fileExistsAtPath:theDBPath];

if (!success) {

//error handle here
NSLog("No se encuentra la BD");

}

//abrimos la Base de Dades

if(!(sqlite3_open([theDBPath UTF8String], &database)==SQLITE_OK)){

//error handle here

NSLog("No se puede abrir la BD");

}

//preparemos la query


const char *sql="SELECT IdEjemplo, Descripción FROM Ejemplos";

sqlite3_stmt*statment;

if( sqlite3_prepare_v2(database, sql, -1, &statment, NULL) != SQLITE_OK){

//error handle here

NSLog("No se puede prepara la sentencia sql");

}

//llenamos el array de objetos

while (sqlite3_step(statment)==SQLITE_ROW) {

//Esta clase la tenéis que crear vosotros, con dos propiedades IdEjemplo y Descripción


//y hacéis el import en el fichero ManageDB.h

Ejemplos *myEjemplo=[[Ejemplos alloc] init];

myEjemplo=sqlite3_column_int(statment, 0);
myEjemplo.Descripcion=[NSString stringWithUTF8String:(char *) sqlite3_column_text(statment, 1)];



[arrayEjemplos addObject:myEjemplo];

[myEjemplo release];

}

if(sqlite3_close(database) !=SQLITE_OK){



//handle error here

}

}

catch (NSException * e) {

}
return arrayEjemplos;

}

Bien con todo esto ya tenéis una función que os devolverá un NSMutableArray con los objetos de tipo Ejemplo que haya encontrado en la Base de Datos.
 
Arriba