#include <stdio.h>
#include <sqlite3.h>
static char *createsql = "CREATE TABLE Employee("
"ID INTEGER PRIMARY KEY,"
"Name VARCHAR(10),"
"BadgeID VARCHAR(10));";
static char *insertsql = "INSERT INTO Employee VALUES(NULL, 'Danny', '12345');";
static char *querysql = "SELECT * FROM Employee;";
void main(void)
{
int rows, cols;
sqlite3 *db;
char *errMsg = NULL;
char **result;
/* Open database file */
if (sqlite3_open("my_example.db3", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)) {
return;
}
/* Build Table */
sqlite3_exec(db, createsql, 0, 0, &errMsg);
/* Add a new record */
sqlite3_exec(db, insertsql, 0, 0, &errMsg);
/* Get the last insert record's ID */
printf("%d\n", sqlite3_last_insert_rowid(db));
/* Get all records in database */
sqlite3_get_table(db , querysql, &result , &rows, &cols, &errMsg);
/* List all the data */
for (i=0;i<rows;i++) {
for (j=0;j<cols;j++) {
printf("%s\t", result[i*cols+j]);
}
printf("\n");
}
/* Free table */
sqlite3_free_table(result);
/* Close database */
sqlite3_close(db);
}
When Compiling, just add sqlite's flag as follows:
gcc -lsqlite3 -o sqlite_exp sqlite_exp.c