Hola, estube curisiando un poco sobre sqlite con c++ y la verdad es que su documentacion es un desastre por lo que a mi respecta claro…
La verdad es que me costo encontrar informacion sobre su uso y por ese motivo quiero compartirlo aqui.
Primero que nada vamos a instalar sqlite3, yo estoy trabajando en ubuntu, linux.
Abrimos un terminal y ejecutamos
apt-get install sqlite3 sqlite3-dev
y con este comando ya estamos listos para empezar.
Creamos un archivo llamado datos.db y ejecutamos en el terminal
sqlite3 datos.db
Ahora vamos a crear una tabla
create table datos (
nombre char(25),
apellido char(25)
);
Y a programar en c y continuo explicando con comentarios 😀
#include <stdio.h> //Printf
#include <sqlite3.h> // Funciones sqlite3
int main(){
sqlite3 *db; //Creamos el puntero a la base de datos
sqlite3_stmt *pStmt; //Esta variable se encarga de iterar los datos obtenidos
int rc = 0;
if(sqlite3_open(«datos.db», &db) != SQLITE_OK){ //Abrimos la base de datos
//Comprobamos que la conexion fue exitosa si no es asi terminamos la ejecucion
return 0;
}
rc = sqlite3_exec(db, «insert into datos values (‘Pedro’, ‘Fashuu’), (‘Fran’, ‘Sinatra’);»,0,0,0); //Ejecutamos una sentencia, en este caso ingresamos dos datos
if(rc != SQLITE_OK){//Comprobamos ubo algun error al ejecutar la sentencia
printf(«nError al insertar datos en la db»);
printf(«n[ERROR] %s», sqlite3_errmsg(db)); // Mostramos el error
}
/* Ahora vamos a ver los resultados */
rc = sqlite3_prepare_v2(db, «SELECT rowid,* FROM datos;», -1, &pStmt, NULL); //Preparamos la sentencia a ejecutar
if(rc != SQLITE_OK){//Comprobamos ubo algun error al ejecutar la sentencia
printf(«nError al obtener datos de la db»);
printf(«n[ERROR] %s», sqlite3_errmsg(db)); // Mostramos el error
}else{
while(SQLITE_ROW == sqlite3_step(pStmt)){ //sqlite3_step devuelve los resultados y sqlite_row comprueba que aya otro valos para iterar
/* Aqui nos encontramos con varias funciones.
En este ejemplo solo utilizaremos
sqlite3_column_int – Devuelve el valos numerico obtenido en la columna
sqlite3_column_text – Devuelve el valos textual obtenido en la columna */
printf(«nID: %d», sqlite3_column_int(pStmt, 0)); // Indicamos que obtenga el valor numerico de la columna 1, que seria rowid
printf(«nNombre: %s», sqlite3_column_text(pStmt,1)); //
printf(«nApellido: %s», sqlite3_column_text(pStmt,2)); //
}
}
printf(«n»);
sqlite3_close(db);//Finalizamos la base de datos
return 0;
}
PastelBIN: http://pastebin.com/6jSmnXqz
Guardamos el archivo como test.cpp
Finalmente compilamos ejecutando
g++ test.cpp -o test -lsqlite3
Y Listo, se que no fue muy bien explicado pero es muy rebuscado… Espero que les pueda servir de ejemplo. Cualquier cosa consulten, Saludos!