VC6.0使用Sqlite3 历程

参考网文:http://hi.baidu.com/lanmolei814/item/c08c82cb11ff612fa1b50a23

1.前往sqlite官网,下载到sqlitedll-3_3_7.zip,以及sqlite-source-3_3_7.zip

2.按照说明,把sqlitedll-3_3_7.zip解压得到dll和def文件

3.把def文件放在了vc安装目录(D:\Program Files\Microsoft Visual Studio\VC98\Bin)下,准备编译生成lib文件

4.报错,我的ghost win8,不知道为什么会这样,报错信息如下

---------------------------
LINK.EXE - 系统错误
---------------------------
无法启动此程序,因为计算机中丢失 mspdb60.dll。尝试重新安装该程序以解决此问题。
---------------------------
确定  
---------------------------

  百度了下,找到这个dll放了进去,重新试了一下,输入:LIB /MACHINE:IX86 /DEF:sqlite3.def

  OK,成功了,生成两个文件sqlite3.exp和sqlite3.lib,需要的文件到手了,准备下一步工作

5.创建一个简单控制台程序把"sqlite3.h"引入Source Files,再把dll和lib文件放入工程目录下

  #include "sqlite3.h" 

  #pragma comment(lib,"sqlite3.lib")

  编译运行后无错,进行下一步
6.建表

   char *zErrMsg = 0;
     char *sql = "CREATE TABLE SensorData( ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);";
  printf("%s\n",sql);
  nRet = sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
  if ( 0 != nRet )  
     {   
         printf("Create table falure, MSG:%s\n", zErrMsg);
     }else   
     {
         printf( "Create table success\n" );
     }

7.插入数据

  sql = "INSERT INTO \"SensorData\" VALUES(NULL , 1 , 1 , '200605011206', 18.9 );" ;
     nRet = sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
     if ( 0 != nRet )  
     {   
         printf("Insert Error:%s", zErrMsg);
     }else   
     {   
         printf("Insert OK\n");
     }

8.更新数据

   sql = "UPDATE SensorData SET SensorParameter=1000.01,SensorID=123 WHERE SensorParameter=100.01";
     nRet = sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
     if ( 0 != nRet )  
     {   
         printf("Update Error:%s", zErrMsg);
     }else   
     {   
         printf("Update OK\n");
     }

9.删除数据

  sql = "DELETE FROM SensorData WHERE SensorID=123";
     nRet = sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
     if ( 0 != nRet )  
     {   
         printf("Delete Error:%s", zErrMsg);
     }else
     {
         printf("Delete OK\n");
     }

10.查询数据

  int nrow = 0, ncolumn = 0;
     char **azResult; //二维数组存放結果
     sql = "SELECT * FROM SensorData ";
     sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
     int i = 0 ;
     printf( "row:%d column=%d \n" , nrow , ncolumn );
     printf( "\nThe result of querying is : \n" );
     for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
         printf( "azResult[%d] = %s\n", i , azResult[i] );
     //释放azResult 的內存空間
     sqlite3_free_table( azResult );

11.最后再关闭数据库

  sqlite3_close(db);

 

例子很简单,但是对数据库的增删改查基本操作都有了。收益很大,实践完后写个简单的数据库操作的程序应该是没什么问题了

找到的另一个简单案例:http://www.cnblogs.com/braver/articles/2621182.html

自己新建了一个QQ群:77499558 有学习c++,mfc的同志欢迎加入,自己找不到组织就自发组织。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值