Listing 2. Basic C API Example
#include <string.h>
#include "sqlite.h"
int callback( void *p_data, int num_fields,
char **p_fields, char **p_col_names);
void main()
{
int ret;
int nrecs = 0;
char *errmsg;
/* Open the database. */
sqlite* p_db = sqlite_open("./db", 0777, 0);
if(p_db == 0)
{
printf("Could not open database.");
exit(1);
}
/* Select everything from the person table. */
ret = sqlite_exec( p_db,
"SELECT * from person limit 10;",
callback,
&nrecs,
errmsg);
if(ret!=SQLITE_OK)
{
printf("Error on SELECT: %s.\n", errmsg);
}
else
{
printf("Retrieved %i records.\n", nrecs);
}
/* Delete everything from the person table. */
sqlite_exec( p_db,
"DELETE * FROM person", 0,0,0);
/* On second thought, don't. */
sqlite_exec(p_db, "ROLLBACK", 0, 0, 0);
/* Close the database. */
sqlite_close(p_db);
}
int callback( void *p_data, int num_fields,
char **p_fields, char **p_col_names)
{
int i;
int *p_rn = (int*)p_data;
(*p_rn)++;
/* Print the field values. */
for(i=0; i < num_fields; i++)
{
printf("%s | " p_fields[i]);
}
return 0;
}