Red de conocimiento informático - Material del sitio web - Cómo operar la base de datos sqlite3 en lenguaje C en Linux

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

#include lt;stdio.hgt;

#include lt;stdlib.hgt;

#include "sqlite3.h"

# definir _DEBUG_

int main( void )

{

sqlite3 *db=NULL;

char *zErrMsg = 0;

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

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;