The Proposed New SQLite 2.0 Interface design. (April 16, 2001) Primary access routines: Control functions: sqlite *sqlite_open(const char *zFilename); int sqlite_compile(sqlite*, const char *zSql); int sqlite_next(sqlite*); int sqlite_abort(sqlite*); int sqlite_finish(sqlite*); sqlite *sqlite_dup(sqlite*); int sqlite_close(sqlite*); Access functions: int sqlite_status(sqlite*); char *sqlite_error_text(sqlite*); int sqlite_column_count(sqlite*); char **sqlite_column_names(sqlite*); char **sqlite_values(sqlite*); const char sqlite_version[]; const char sqlite_encoding[]; Secondary access routines: Control functions: int sqlite_complete(const char *); char *sqlite_mprintf(const char *zFormat, ...) char *sqlite_vmprintf(const char *zFormat, va_list ap); int sqlite_compile_printf(sqlite*, const char *zFormat, ...); int sqlite_compile_vprintf(sqlite*, const char *zFormat, va_list ap); int sqlite_eval(sqlite*, const char *zSql); int sqlite_retry(sqlite*); int sqlite_eval_printf(sqlite*, const char *zFormat, ...); int sqlite_eval_vprintf(sqlite*, const char *zFormat, va_list ap); int sqlite_busy_handler(sqlite*, int(*)(void*,const char*,int), void*); int sqlite_busy_timeout(sqlite*, int ms); Access functions: int sqlite_row_count(sqlite*); char ***sqlite_rows(sqlite*, int iRow); Usage examples: Getting an entire result table in one go: sqlite *p = sqlite_open("ex.db"); sqlite_eval(p, "SELECT * FROM table_one"); for(i=0; i0 ) printf("\n"); for(j=0; j0 ) printf("\n"); for(j=0; j0 ) printf("\n"); for(j=0; j0 ) printf("\n"); for(j=0; j