zoukankan      html  css  js  c++  java
  • sqlite3入门之sqlite3_open,sqlite3_exec,slite3_close

    sqlite3_open

    • sqlite3_open函数原型:
    • int sqlite3_open(
        const char *filename,   /* Database filename (UTF-8) */
        sqlite3 **ppDb          /* OUT: SQLite db handle */
      );
    • sqlite3_open用于连接打开一个数据库,如果这个数据库不存在,则会在指定的路径下创建一个数据库文件,并打开文件;
    • void main(void) {
      ......

      sqlite3 *db; char *zErrMsg = 0; int rc; rc = sqlite3_open("testDB1.db", &db); if(rc){ fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db)); exit(0); } else { fprintf(stderr, "Opened database successfully "); }
      ......
      }

    sqlite3_exec

    • sqlite3_exec函数原型:
    • int sqlite3_exec(
        sqlite3,                                   /* An open database */
        const char *sql,                           /* SQL to be evaluated */
        int (*callback)(void*,int,char**,char**),  /* Callback function */
        void *,                                    /* 1st argument to callback */
        char **errmsg                              /* Error msg written here */
      );
    • sqlite3_exec用于执行一条sql语句,参数如下:
    • 参数1:打开数据库得到的指针;
    • 参数2:一条sql语句,是一个以“”结尾的字符串;
    • 参数3:用户提供的回调函数,如果不需要回调函数,可以填 NULL。比如做insert 操作,做delete操作,就没有必要使用回调。而当你做select 时,就要使用回调;
    • 参数4:回调函数需要传递的参数,如果不需要,可以填 NULL;
    • 参数5:错误信息
    • 不使用回调示例:
    • void main(void){
          ......
          sql = "INSERT INTO COMPANY VALUES (1, 'Paul', 32, 'California',     20000.00 ); "
          sqlite3_exec(db, sql, 0, 0, &zErrMsg);
      
      .....     
      }
    • 回调示例:
    • static int callback(void *NotUsed, int argc, char **argv, char **azColName){
         int i;
         for(i=0; i<argc; i++){
            printf("%s = %s
      ", azColName[i], argv[i] ? argv[i] : "NULL");
         }
         printf("
      ");
         return 0;
      }
      
      void main(void){
        ......
      
         /* Create SQL statement */
         sql = "SELECT * from COMPANY";
      
         /* Execute SQL statement */
         rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
         if( rc != SQLITE_OK ){
            fprintf(stderr, "SQL error: %s
      ", zErrMsg);
            sqlite3_free(zErrMsg);
         }else{
            fprintf(stdout, "Operation done successfully
      ");
         }    
      
      ......
      }

    sqlite3_close

    • sqlite3_close函数原型:

    • int sqlite3_close(sqlite3*);  
    • sqlite3_close用于在操作完数据库之后,关闭数据库; 
  • 相关阅读:
    [Windwos Phone 7] Accelerometer
    [Windwos Phone 7] 获取设备相关信息
    实现ZUNE上软件商城的软件星级推荐效果
    [Windows Phone 7]如何判断手机是否有网络连接
    [Windows Phone 7]UI对屏幕的自适应的处理
    [Windows Phone 7]开发分享图片的插件(2)
    [Windows Phone 7]如何导航页面和页面间传值
    windows phone 从cer中提出公钥然后再RSA加密的问题
    异步上传文件插件AjaxFileUploader在Asp.net MVC中应用
    微软认证考试分析
  • 原文地址:https://www.cnblogs.com/icefree/p/11106183.html
Copyright © 2011-2022 走看看