e.实例代码<一>

一、获取表的Schema信息:

    1). 动态创建表。
    2). 根据sqlite3提供的API,获取表字段的信息,如字段数量以及每个字段的类型。
    3). 删除该表。
    见以下代码及关键性注释:

复制代码

 #include <sqlite3.h>
 #include <>
 
   std;
 
  doTest()
 {
     sqlite3* conn = NULL;
           result = sqlite3_open(,&conn);
      (result != SQLITE_OK) {
         sqlite3_close(conn);
         ;
     }
      * createTableSQL = 
         ;
     sqlite3_stmt* stmt = NULL;
      len = strlen(createTableSQL);
           (sqlite3_prepare_v2(conn,createTableSQL,len,&stmt,NULL) != SQLITE_OK) {
          (stmt)
             sqlite3_finalize(stmt);
         sqlite3_close(conn);
         ;
     }
                     (sqlite3_step(stmt) != SQLITE_DONE) {
         sqlite3_finalize(stmt);
         sqlite3_close(conn);
         ;
     }
          sqlite3_finalize(stmt);
     printf();
           * selectSQL = ;
     sqlite3_stmt* stmt2 = NULL;
      (sqlite3_prepare_v2(conn,selectSQL,strlen(selectSQL),&stmt2,NULL) != SQLITE_OK) {
          (stmt2)
             sqlite3_finalize(stmt2);
         sqlite3_close(conn);
         ;
     }
           fieldCount = sqlite3_column_count(stmt2);
     printf(,fieldCount);
           ( i = ; i < fieldCount; ++i) {
                                              stype = sqlite3_column_decltype(stmt2,i);
         stype = strlwr((*)stype.c_str());
                            (stype.find() != ::npos) {
             printf(,i);
         }   (stype.find() != ::npos
             || stype.find() != ::npos) {
             printf(,i);
         }   (stype.find() != ::npos 
             || stype.find() != ::npos 
             || stype.find() != ::npos ) {
             printf(,i);
         }
     }
     sqlite3_finalize(stmt2);
            * dropSQL = ;
     sqlite3_stmt* stmt3 = NULL;
      (sqlite3_prepare_v2(conn,dropSQL,strlen(dropSQL),&stmt3,NULL) != SQLITE_OK) {
          (stmt3)
             sqlite3_finalize(stmt3);
         sqlite3_close(conn);
         ;
     }
      (sqlite3_step(stmt3) == SQLITE_DONE) {
         printf();
     }
     sqlite3_finalize(stmt3);
     sqlite3_close(conn);
 }
 
  main()
 {
     doTest();
      ;
 }

复制代码

二、常规数据插入:

    1). 创建测试数据表。
    2). 通过INSERT语句插入测试数据。
    3). 删除测试表。
    见以下代码及关键性注释:

复制代码

 #include <sqlite3.h>
 #include <>
 #include <stdio.h>
 
   std;
 
  doTest()
 {
     sqlite3* conn = NULL;
           result = sqlite3_open(,&conn);
      (result != SQLITE_OK) {
         sqlite3_close(conn);
         ;
     }
      * createTableSQL = 
         ;
     sqlite3_stmt* stmt = NULL;
      len = strlen(createTableSQL);
           (sqlite3_prepare_v2(conn,createTableSQL,len,&stmt,NULL) != SQLITE_OK) {
          (stmt)
             sqlite3_finalize(stmt);
         sqlite3_close(conn);
         ;
     }
                 (sqlite3_step(stmt) != SQLITE_DONE) {
         sqlite3_finalize(stmt);
         sqlite3_close(conn);
         ;
     }
          sqlite3_finalize(stmt);
     printf();
 
      insertCount = ;
           * insertSQL = ;
      * testString = ;
      sql[];
     sqlite3_stmt* stmt2 = NULL;
      ( i = ; i < insertCount; ++i) {
         sprintf(sql,insertSQL,i,i * ,testString);
          (sqlite3_prepare_v2(conn,sql,strlen(sql),&stmt2,NULL) != SQLITE_OK) {
              (stmt2)
                 sqlite3_finalize(stmt2);
             sqlite3_close(conn);
             ;
         }
          (sqlite3_step(stmt2) != SQLITE_DONE) {
             sqlite3_finalize(stmt2);
             sqlite3_close(conn);
             ;
         }
         printf();
     }
     sqlite3_finalize(stmt2);
                * dropSQL = ;
     sqlite3_stmt* stmt3 = NULL;
      (sqlite3_prepare_v2(conn,dropSQL,strlen(dropSQL),&stmt3,NULL) != SQLITE_OK) {
          (stmt3)
             sqlite3_finalize(stmt3);
         sqlite3_close(conn);
         ;
     }
      (sqlite3_step(stmt3) == SQLITE_DONE) {
         printf();
     }
     sqlite3_finalize(stmt3);
     sqlite3_close(conn);
 }
 
  main()
 {
     doTest();
      ;
 }

http://www.cnblogs.com/stephen-liu74/archive/2012/02/07/2340780.html 

Posted in 学习手册.