sqlite开发例子

#include <stdio.h>  
#include <stdlib.h>  
#include "sqlite3.h"  
#define _DEBUG_  
int main(int argc, char**argv)  
{  
     sqlite3 *db=NULL;  
     int len;  
     int i=0;  
     int nrow=0;  
     int ncolumn = 0;  
     char *zErrMsg =NULL;  
     char **azResult=NULL; //二维数组存放结果  
     /* 打开数据库 */  
     len = sqlite3_open("device_information.db",&db);  
     if( len )  
     {  
        /*  fprintf函数格式化输出错误信息到指定的stderr文件流中  */  
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));//sqlite3_errmsg(db)用以获得数据库打开错误码的英文描述。  
        sqlite3_close(db);  
        exit(1);  
     }  
     else printf("You have opened a sqlite3 database named user successfully!\n"); 
 
  // ID INTEGER PRIMARY KEY,
     /* 创建表 */  
     char *sql = " CREATE TABLE devicelist(\  
         netaddr_endpoint VARCHAR(50),\  
         deviceid_zonetype VARCHAR(50),\  
         ieee VARCHAR(50)\  
          );" ;  
  
      sqlite3_exec(db,sql,NULL,NULL,&zErrMsg);  
#ifdef _DEBUG_  
      printf("%s\n",zErrMsg);  
      sqlite3_free(zErrMsg);  
#endif  


char aa[20] = "abc123";
char bb[20] = "ddd";
char cc[20] = "ccc";


char sql4[512] = {0};
      /*插入数据  */  
      char*sql1 ="INSERT INTO 'devicelist'VALUES('abc123','aabbccdd','1234567812345678');";  
      sqlite3_exec(db,sql1,NULL,NULL,&zErrMsg);  
      char*sql2 ="INSERT INTO 'devicelist'VALUES('abc163','aabbdcdd','1234567812345978');";  
      sqlite3_exec(db,sql2,NULL,NULL,&zErrMsg);  
      char*sql3 ="INSERT INTO 'devicelist'VALUES('abc173','aabaccdd','1234567812366678');";  
      sqlite3_exec(db,sql3,NULL,NULL,&zErrMsg); 
sprintf(sql4, "INSERT INTO devicelist VALUES('%s','%s', '%s'); ",  aa,bb,cc);
      sqlite3_exec(db,sql4,NULL,NULL,&zErrMsg);
  char*sql5 ="INSERT INTO 'devicelist'VALUES('abc17443','aabac44cdd','123454467812366678');";
  sqlite3_exec(db,sql5,NULL,NULL,&zErrMsg);
      /* 查询数据 */  
     // sql="select *from devicelist where netaddr_endpoint = 'abc'"; 
     char sql6[512] = {0};
      sprintf(sql6,"select *from devicelist where netaddr_endpoint = '%s';",aa);
      sqlite3_get_table( db , sql6 , &azResult , &nrow , &ncolumn , &zErrMsg );  
      printf("nrow=%d ncolumn=%d\n",nrow,ncolumn);  
      printf("the result is:\n");  
      for(i=0;i<(nrow+1)*ncolumn;i++)  
        {  
          printf("+++azResult[%d]=%s,%d\n",i,azResult[i],strlen(azResult[i]));  
        }  
  
     /* 删除某个特定的数据 */  
      sql="delete from devicelist where netaddr_endpoint = 'abc123' ";  
      sqlite3_exec( db , sql , NULL , NULL , &zErrMsg );  
#ifdef _DEBUG_  
      printf("zErrMsg = %s \n", zErrMsg);  
      sqlite3_free(zErrMsg);  
#endif  
  
      /* 查询删除后的数据 */  
      sql = "SELECT * FROM devicelist ";  
      sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );  
      printf( "row:%d column=%d\n " , nrow , ncolumn );  
      printf( "After deleting , the result is : \n" );  
      for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )  
      {  
            printf( "azResult[%d] = %s\n", i , azResult[i] );  
      }  
      sqlite3_free_table(azResult);  
#ifdef _DEBUG_  
   printf("zErrMsg = %s \n", zErrMsg);  
   sqlite3_free(zErrMsg);  
#endif  
  
      sqlite3_close(db);  
      return 0;  
  
}  

猜你喜欢

转载自blog.csdn.net/mianhuantang848989/article/details/80044798