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 stringWithUTF8Stringchar *) 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.
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 stringWithUTF8Stringchar *) 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.