FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
C++
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
March 01, 2004

The SQLite Database Engine

(Page 3 of 10)
March 04:

Listing 2: C API example.

#include <stdlib.h>
#include <stdio.h>
#include <sqlite.h>
typedef struct sqlite_vm sqlite_vm;
int main()
{
   const char* db_name = "db";
   sqlite *db; /* The database handle */
   char *sql = "select projectname_full as name, rating, license "
               "from project order by rating desc limit 10";
   const char *tail; /* Points to next SQL statement to process, if any. */
   char *err_msg; /* Last error message, if any. */

sqlite_vm *pvm; /* Virtual machine for executing query. */ db = sqlite_open(db_name, 0, &err_msg); if(db==0) { fprintf(stderr, "Can't open database: %s\n", err_msg); exit(1); } /* Compile SQL, allocate a virtual machine for processing. */ int ret = sqlite_compile(db,sql,&tail,&pvm,&err_msg); if(ret != SQLITE_OK) { fprintf(stderr, "Compile failed: %s\n", err_msg); sqlite_freemem(err_msg); exit(1); } int i, ncols; const char** fields; const char** col_defs; ret = sqlite_step(pvm, &ncols, &fields, &col_defs); /* Print Column Names */ printf("%35s %5s %40s\n\n", col_defs[0], col_defs[1], col_defs[2]); /* Print Column Datatypes */ printf("%35s %5s %40s\n\n", col_defs[3], col_defs[4], col_defs[5]); /* Print Result Set */ while(ret == SQLITE_ROW) { printf("%35s %5s %40s\n", fields[0], fields[1], fields[2]); ret = sqlite_step(pvm, &ncols, &fields, &col_defs); } ret = sqlite_finalize(pvm, &err_msg); if(ret != SQLITE_OK) { fprintf(stderr, "Finalize failed: %s\n", err_msg); sqlite_freemem(err_msg); exit(1); } sqlite_close(db); }

Previous Page | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK