首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
收藏本文     查看收藏

2 SQLite移植

2.1 下载SQLite

       SQLite官方网站http://www.sqlite.org/download.html下载最新的源代码,编写本文档时的版本为3.7.16。一共包含如下几个文件sqlite-amalgamation-3071602.zipsqlite-dll-win32-x86-3071602.zip, sqlite-src-3071602.zip,然后解压。

2.2 创建SQLite Dll工程

       A、运行VS2005,点击文件(F-> 新建()-> 项目(P,项目类型Visual C++ -> 智能设备 -> Win32智能设备项目,项目名称为sqlite。然后点击确定

 

 

 

 

B、在Win32 智能设备项目向导中的平台设置根据实际情况选择,此处我们选择EAC-0945。然后点击下一步

C、在应用程序设置中,应用程序类型选择DLL(D)附加选项选择空项目(E),然后点击完成

 

 

D、复制sqlite-amalgamation-3071602目录下的sqlite3.csqlite3.hsqlite3ext.h到工程源文件目录。

       复制sqlite-src-3071602\ext\rtree目录下的rtree.crtree.hsqlite3rtree.h到工程源文件目录。

       复制sqlite-dll-win32-x86-3071602目录下的sqlite3.def到工程源文件目录。

       然后在解决方案窗口,右键点击Sqlite工程下的源文件,选择添加->添加现有项,加入工程目录下的rtree.csqlite3.c。添加完毕后,工程窗口类似如下:

2.3 SQLite编译

       A修改sqlite3.c,将里面的localtime_s全部替换为_localtime64_s

       B将工程属性中的配置属性->C/C++->高级->编译为设置为编译为C代码(/TC),在预处理器->预处理器定义中增加SQLITE_ENABLE_COLUMN_METADATA

              链接器->输入->模块定义文件中输入sqlite3.def

       C编译工程,即可生成sqlite.dllsqlite.lib

   


3 SQlite使用

       A点击文件(F-> 新建()-> 项目(P,项目类型Visual C++ -> 智能设备 -> Win32智能设备项目,项目名称为sqlite3test。然后点击确定

       BWin32智能设备向导平台设置为EAC-0945应用程序类型设置为控制台应用程序(O),然后点击完成

       C复制sqlite3.h,sqlite3.libsqlite3.dll到工程目录下,并将sqlite3test.cpp中的文件内容替换如下:

// sqlite3test.cpp : 定义控制台应用程序的入口点。

//

 

#include "stdafx.h"

#include <windows.h>

#include <commctrl.h>

#include "sqlite3.h"

 

int _tmain(int argc, _TCHAR* argv[])

{

 

         sqlite3 *db = 0;

         int rc;

         char *sql;

 

         rc = sqlite3_open("\\nandflash\\test.db", &db);

         if(rc)

         {

                   printf("Can't open database:%s\n", sqlite3_errmsg(db));

                   sqlite3_close(db);

                   exit(1);

         }

 

         // Create a table

         sql = "CREATE TABLE SensorData( ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);";

         sqlite3_exec( db , sql , 0 , 0 , 0);

 

         // insert  data record

         sql = "INSERT INTO SensorData VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;

         sqlite3_exec( db , sql , 0 , 0 , 0);

 

         sql = "INSERT INTO SensorData VALUES(NULL, 2, 1, '200605011207', 19.0);";

         sqlite3_exec( db , sql , 0 , 0 , 0);

 

         do{

                   // inquiry data

                   int i,j;

                   int row=0, col=0;

                   char **result;

                   sql = "SELECT * FROM SensorData ";

                   sqlite3_get_table( db , sql , &result , &row , &col , 0 );

                   printf("row:%d column=%d \n" , row , col);

 

                   for(i=0;i!=(row+1);i++)

                   {

                            for(j=0;j<col;j++)

                                     printf("%s           ",result[i*col+j]);

                            printf("\r\n");

                   }

                   sqlite3_free_table(result);

         }while(0);

         printf("Press Enter key to exit.\r\n");

     c = getchar();

         sqlite3_close(db);

         return 0;

 

}

         D在项目属性配置属性->链接器->输入->附加依赖项中增加sqlite.lib,然后编译工程。

E将编译所得的sqlite3test.exesqlite.dll复制到设备的\\NandFlash目录,运行sqlite3test.exe即可。

       每运行一次,表的记录都会多2项。

       运行后,按Enter键即退出程序。

 



 

状 态: 离线

公司简介
产品目录

公司名称: 深圳市盈鹏飞科技有限公司
联 系 人: 李希岗
电  话: 0086-13602511395
传  真: 0755-82523175,82523176-819
地  址: 深圳市福田区福明路40号,雷圳大厦12A06
邮  编: 518033
主  页:
 
该厂商相关技术文摘:
WINCE下如何添加CPL应用程序
EAC-C925开机画面实现手册
更多文摘...
立即发送询问信息在线联系该技术文摘厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved