10 Preparación

Dado que SQLite no necesita un servidor de base de datos para funcionar, el uso de bases de datos en nuestras aplicaciones se simplifica enormemente. De hecho, no hay que realizar ninguna operación especial para usar bases de datos SQLite en un programa C/C++.

Sólo hay que añadir dos detalles para poder usar bases de datos en un programa. La primera, incluir el fichero de cabecera de SQLite en el código fuente:

#include <sqlite/sqlite3.h>

La segunda, hacer que el enlazador incluya la librería estática de SQLite. En cada compilador, y dependiendo de si usamos un IDE o no, esto se hará de formas diferentes. En nuestros ejemplos, usando Code::Blocks o ZinjaI, basta con añadir la opción "sqlite" en las opciones de construcción del proyecto:

Diálogo de opciones de construcción de Code::Blocks
Diálogo de opciones de construcción de Code::Blocks

Diálogo de opciones de construcción de ZinjaI
Diálogo de opciones de construcción de ZinjaI

Abrir una base de datos

Bien, lo primero es abrir la base de datos que vamos a usar en nuestro programa. Para ello usaremos la función del API sqlite3_open, que require dos parámetros. El primero es el nombre de fichero que contiene la base de datos, en nuestro caso "agenda.db". El segundo es un puntero doble a un objeto sqlite3.

El segundo parámetro es en realidad un valor de retorno de la función sqlite3_open. En nuestros programas usaremos un puntero a un objeto sqlite3 para almacenar una conexión con la base de datos.

Nota:

Muchas de las funciones del API de SQLite disponen de versiones para cadenas en formato UTF-8 y UTF-16. Este es el caso de sqlite3_open. Mientras sólo usemos caracteres ASCII para los nombres de fichero, esto no debería ser un problema.

El valor de retorno de sqlite3_open es un código de error, que indicará si la función ha tenido éxito, retornando SQLITE_OK, o si ha fracasado, con otro código que indica el error.

Este el el código para abrir la base de datos "agenda.db":

    int rc;
    sqlite3 *db;

    rc = sqlite3_open("agenda.db", &db);
    if(SQLITE_OK != rc) {
        cout << "Error: No se puede abrir la base de datos" << endl;
		return 1;
    }
	...
	sqlite3_close(db);

Por supuesto, una vez hayamos terminado de trabajar con la base de datos, deberemos cerrar la conexión con la base de datos. Para ello usaremos la función sqlite3_close.