Hola, estube curisiando un poco sobre sqlite3 en 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 :D
#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!
Aprende de programación y electrónica con mis tutoriales. Encuentra tutoriales de programación. De ves en cuando subo mis proyectos y me desvelo programando.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario