Cómo operar la base de datos sqlite3 en lenguaje C en Linux
Veamos cómo insertar datos en la base de datos en lenguaje C.
Bien, editemos un fragmento de código C ahora y llamémoslo insert.c
// nombre: insert.c
// Este programa se usa para probar la API C/C para sqlite3. ¡Es muy simple, ja!
// Autor: zieckey Todos los derechos reservados.
// datos: 2006/11/18 p>
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
#include "sqlite3.h"
# definir _DEBUG_
int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0; p>
p>
int rc;
rc = sqlite3_open("zieckey.db", amp; db); //Abre el archivo de base de datos especificado, si no existe, a Se creará un archivo de base de datos con el mismo nombre p>
if( rc )
{
fprintf(stderr, "No se puede abrir la base de datos: s
", sqlite3_errmsg(db)) ;
sqlite3_close(db);
salir(1);
}
else printf("¡Has abierto una base de datos sqlite3 llamada zieckey.db exitosamente!
¡Felicitaciones! ¡Diviértete! ^-^
");
/ /Crear una tabla, si la tabla existe, entonces No crear y proporcionar información rápida, almacenada en zErrMsg
char *sql = " CREATE TABLE SensorData(
ID INTEGER PRIMARY KEY ,
SensorID INTEGER ,
SiteNum INTEGER,
Tiempo VARCHAR(12),
SensorParameter REAL
);" ;
sqlite3_exec(db, sql, 0, 0, amp; zErrMsg);
#ifdef _DEBUG_
printf("s
", zErrMsg);
#endif
//Insertar datos
sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;
sqlite3_exec( db , sql , 0 , 0 , & zErrMsg );
sql = "INSERTAR EN VALORES "SensorData"( NULL , 1 , 1 , '200605011306', 16.4);";
sqlite3_exec(db, sql
, 0, 0, amp;zErrMsg);
sqlite3_close(db); //Cerrar la base de datos
return 0;
}
Está bien, escriba el código anterior en un archivo y asígnele el nombre insert.c.
Explicación:
El prototipo de función de sqlite3_exec es el siguiente:
int sqlite3_exec(
sqlite3*,
const char *sql,
sqlite_callback,
void *,
char **errms
g
);
Compilar:
[root@localhost temp]# gcc insert.c -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/ sqlite3/ include
insert.c:28:21: advertencia: los literales de cadena multilínea están en desuso
[root@localhost temp]#
Ejecutar
[root@localhost temp]# ./a.out
./a.out: error al cargar bibliotecas compartidas: libsqlite3.so.0: no se puede abrir el archivo de objeto compartido: No dicho archivo o directorio
[root@localhost temp]#
La misma situación que arriba:
[root@localhost temp]# export LD_LIBRARY_PATH=/ usr /local/sqlite3/lib:$LD_LIBRARY_PATH
[root@localhost temp]# ./a.out
¡Has abierto una base de datos sqlite3 llamada zieckey.db exitosamente!
p>¡Enhorabuena! ^-^
(nulo)
(nulo)
(nulo)
[root@localhost temp]#
La operación fue exitosa, vale, ahora veamos si se han insertado los datos
[root@localhost temp]# /usr/local/ sqlite3 /bin/sqlite3 zieckey.db
SQLite versión 3.3.8
Ingrese ".help" para obtener instrucciones
sqlitegt seleccione * de SensorData;
sqlitegt; p >
1|1|1|200605011206|18.9
2|1|1|200605011306|16.4
sqlitegt;