rendered paste body#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>#include <stdlib.h>int callback (void *scor0, int scor1, char **scor2, char **scor3){ for (int i = 0; i < scor1; i++){ printf (">%s \t", scor3[i]); } printf ("\n"); for (int i = 0; i < scor1; i++){ printf (">%s \t", scor2[i]); } printf ("\n"); return 0;}int main (int argc, char **argv){ sqlite3 *db; char *zErrMsg = 0; int rc; if (argc != 3){ fprintf (stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); } if (sqlite3_enable_shared_cache (1) == SQLITE_OK){ printf ("cache shared\n"); } rc = sqlite3_open_v2 (argv[1], &db, SQLITE_OPEN_READWRITE, NULL); if (rc){ fprintf (stderr, "Can't open database: %s\n", sqlite3_errmsg (db)); sqlite3_close (db); exit (1); } char *rocket = "insert into table1 values(?, 'plup');"; sqlite3_stmt *stmt = NULL; if (sqlite3_prepare_v2 (db, rocket, 50, &stmt, NULL) != SQLITE_OK){ printf (":(\n"); } for (int i = 0; i < 1000; i++){ if (i % 100 == 0){ printf ("%d\n", i); }#ifdef PREPARE switch (sqlite3_step (stmt)){ case SQLITE_DONE: printf ("ok "); break; case SQLITE_BUSY: printf ("oqp "); break; case SQLITE_ERROR: printf ("err "); break; case SQLITE_ROW: printf ("row "); break; case SQLITE_MISUSE: printf ("mis "); break; default: printf ("??? "); } sqlite3_reset (stmt); sqlite3_bind_int (stmt, 1, i);#else if (sqlite3_exec (db, rocket, NULL, NULL, NULL) != SQLITE_OK){ printf (":(\n"); }#endif } sqlite3_close (db); return 0;}