Listing 4: Using a custom function.
int main(int argc, char **argv)
{
sqlite *db;
const char *tail;
sqlite_vm *pvm;
char *err_msg;
int ncols;
const char** fields;
const char** col_defs;
db = sqlite_open("db", 0, &err_msg);
sqlite_create_function(db, "normal_curve_area", 4, normal_curve_area, NULL);
const char* sql = "select normal_curve_area(-2.35, 2.35, 0, 1)";
sqlite_compile(db, sql, &tail, &pvm, &err_msg);
sqlite_step(pvm, &ncols, &fields, &col_defs);
printf("Area=%s\n", fields[0]);
sqlite_finalize(pvm, &err_msg);
sqlite_close(db);
return 0;
}