Hace algunas semanas hemos recivido , de parte de uno de los desarrolladores "Ricardo D. Quiroga" de la comunidad un ejemplo de como implementar SQLite en el Languaje C. A Quien Agradesemos el Envio de este miniComo..
Basado en el ejemplo posteado en http://www.sqlite.org/quickstart.html
Autor: Ricardo D. Quiroga -> l2radamanthys@gmail.com
El codigo fuente posteado aqui esta bajo licencia GPL2 (license.txt)
Codigo fuente Probado usando el Dev-C++ y el Compilador GCC
#include
El autor no se hace responsable del daño que el mismo pudiese causar directa o indirectamente a tu computadora ,novia,, perro, Y/O SUEGRA ,ect. use el mismo bajo su propia responsabilidad.
Se Incluyen los siguientes archivos:
* libreria sqlite
- sqlite3.h
- libsqlite3.a
- sqlite3.dll
* codigo fuente
- main.c (Codigo fuente)
- main.c.html (vercion del codigo fuente para visualizar como html)
- test1.dev (archivo de proyecto (solo para Dev-C++) )
Aunque fue el Codigo fue probado con el Dev-C++ usando el GCC el mismo tambien deveria poderse compilar usando cualquier otro ya que el mismo solo fue escrito en ANSI C
Sobre la BD:
Crear una BD con el nombre 'test.db'(o cambiar el nombre de la bd en el codigo fuente) a la cual luego se le agregara una tabla llamarla 'table1' y colocarle los camposo que ud eligan
Que hace el programa:
Conecxta una base de datos a SQLite realiza una pequeña consulta con SQLite en este ejemplo la consulta es la siguiente "select * from table1;" muestra los resultados en pantalla y cierra la bd.
/*****************************************************************************************
------ Una Simple consulta en SQLITE Usando C ------
Probado con el Dev-C++ Usando el GCC
Por Ricardo D. Quiroga - l2radamanthys@gmail.com
Este ejemplo esta basado en el codigo posteado en http://www.sqlite.org/quickstart.html
Quitando los Comentarios son como 25 lineas
*****************************************************************************************/
#include
#include
#include //libreria para trabajar con SQLite3
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
for( int i=0; i
printf("%s ", argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv) {
sqlite3 *db; //variable que hara referencia a la Base de Datos que utilzaremos
char *zErrMsg; //string que almacenara el mensaje de error
int rc; //amacenara el resultado del llamado de las funciones de sqlite3.h
/*****************************************************************************************
Abrimos la base de Datos en nuestro caso la BD se llamara 'test.db'
int sqlite3_open(
const char *filename, Nombre de la Base de Datos (UTF-8)
sqlite3 **ppDb Salida SQLite db handle
);
En caso de error la funcion sqlite3_open() devolvera un valor distinto de 0
*****************************************************************************************/
rc = sqlite3_open("test.db", &db);
/*****************************************************************************************
Mostramos el mensaje de error en caso de que no se pudiera abrir la Base de Datos
*****************************************************************************************/
if (rc) {
fprintf(stderr, "No se pudo Abrir la base de Datos: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
/*****************************************************************************************
Strings que alamcenaran las consulta que relizamos en la que Copiaremos la instrucion de
SQLite que queremos ejecutar en la variable 'instrucion' en este caso una simple consulta
a la Base de Datos
*****************************************************************************************/
char instrucion[1024]="";
sprintf(instrucion, "SELECT * FROM table1;");
/*****************************************************************************************
Ejecutamos la instrucion alamcenada en el string instrucion en SQLite3
Esplicacion mas a fondo de la funcion 'sqlite3_exec()'
int sqlite3_exec(
sqlite3*, Base de Datos Abierta
const char *sql, Instrucion de SQl a evaluar
int (*callback)(void*,int,char**,char**), funcion (Callback) ver arrina
void *, 1er agumento de la funcion Callback
char **errmsg variable de mensaje de error (1)
);
si ocurrio un error durante la ejecucion de la instrucion la la funcion devolvera un valor
diferente de la constante SQLITE_OK y el tipo de error sera devuelto en la variable errmsg(1)
*****************************************************************************************/
rc = sqlite3_exec(db, instrucion, callback, 0, &zErrMsg);
/*****************************************************************************************
En caso que ocurriera un error en la ejecucion de la instrucion SQL mostramos el mismo
*****************************************************************************************/
if ( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
/*****************************************************************************************
funcion para cerrar la Base de Datos ( Sin comentarios....)
*****************************************************************************************/
sqlite3_close(db);
printf("\n");
system("PAUSE"); //pausamos la ejecucion del programa par aque no se cierre la consola
return EXIT_SUCCESS;
} //fin del programa.....
Este programa fue desarrollado como ejemplo de uso de SQLite para SQLite-Latinoamerica
Ricardo D. Quiroga