当前位置:首页 > 编程开发

VC2005使用SQLite,适用于WIN32以及WINCE

webgou16年前 (2010-10-10)编程开发445

VC2005使用SQLite,适用于WIN32以及WINCE

首先,把编译SQLITE生成的DLLLIBsqlite3.h 放到项目的文件夹下,把项目=》属性=》链接器=》输入=》附加依赖项:输入SQLITElib文件名
一、创建MySQLite.cpp
#include "stdafx.h"
#include "MySQLite.h"
bool MySQLite::sqlite_connect(char *filename)
{
    db=NULL;
    zErrMsg = 0;
    row = 0, column = 0;
    int rc;
    rc = sqlite3_open(filename, &db); //
打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
    if( rc )
    {
        strcpy(zErrMsg,sqlite3_errmsg(db));//
保存错误信息
        sqlite3_close(db);
        return false;
    }
    return true;   
}

bool MySQLite::sqlite_exec(char *sql)
{
    int rc;
    rc=sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
    if(rc == SQLITE_OK)
        return true;
    return false;
}

void MySQLite::sqlite_search(char *search_sql)
{
    sqlite3_get_table( db,search_sql,&azResult,&row,&column,&zErrMsg);
}

bool MySQLite::sqlite_disconnect()
{
//
释放掉 azResult 的内存空间
    sqlite3_free_table( azResult );
    if(sqlite3_close(db)==SQLITE_OK) //
关闭数据库
        return true;
    return false;
}

二、创建MySQLite.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlite3.h"
class MySQLite
{
private:
    sqlite3 *db;//
数据库句柄
    char **azResult; //
二维数组存放结果
    char *zErrMsg;//
保存错误信息
    int row;
    int column;
public:
    bool sqlite_connect(char *filename);//
连接数据库
    bool sqlite_exec(char *sql);//
执行SQL命令
    void sqlite_search(char *search_sql);//
查询
    bool sqlite_disconnect();//
断开数据库连接

    int GetTableRow(){return row;}//
查询后,取得表
    int GetTableColumn(){return column;}//
查询后,取得表
    char *GetErrorMsg(){return zErrMsg;}//
取得当前错误提示
    char *GetTableData(int x,int y){return *(azResult+x+y*column);}//
查询后,取得表内某个单元值
};

三、创建测试文件test.cpp

#include "stdafx.h"
#include <iostream>
#include "MySQLite.h"
#define _DEBUG_
using namespace std;
int main( void )
{
    bool result;
    MySQLite *sqlite=new MySQLite();
    result=sqlite->sqlite_connect("hellogv.db");
    if(!result) cout<<sqlite->GetErrorMsg()<<endl;
   
    result=sqlite->sqlite_exec("CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(500),SensorParameterREAL);");
    if(!result) cout<<sqlite->GetErrorMsg()<<endl;

    result=sqlite->sqlite_exec("INSERT INTO \"SensorData\" VALUES(NULL , 1 , 1 , '200605011206', 18.9 );");
    if(!result) cout<<sqlite->GetErrorMsg()<<endl;


    result=sqlite->sqlite_exec("INSERT INTO \"SensorData\" VALUES(NULL , 23 , 45 , '200605011306', 16.4 );");
    if(!result) cout<<sqlite->GetErrorMsg()<<endl;

    sqlite->sqlite_search("SELECT * from SensorData");
    cout<<sqlite->GetTableColumn()<<"   "<<sqlite->GetTableRow()<<endl;
    cout<<sqlite->GetTableData(0,0)<<endl;

    sqlite->sqlite_disconnect();

    return 0;
}

 

http://blog.csdn.net/hellogv/archive/2008/05/06/2399700.aspx

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=360

标签: vswince
分享给朋友:

“VC2005使用SQLite,适用于WIN32以及WINCE” 的相关文章

FM 中的 RDS 功能

 从网上搜来的字面解释是:RDS是英国BBC广播公司开发的一种特殊的无线电广播,称”无线数据广播系统“(Radio Data System),它是在调频广播发射信号中利用副载波把电台名称、节目类型、节目内容及其它信息以数字形式发送出去。通过具有RDS功能的调谐器就…

devenv.exe的命令行参数

devenv.exe的命令行参数…

CentOS7编译安装git并配置使用github

 一、编译安装gitCentOS7默认安装的git版本为1.8.3.1,而git官方的版本已经到2.2.0了,所以选择下载源码编译安装git...…

Android初体验一

今天,在windows下搭建Android开发环境,步聚比较简洁。昨晚在自已电脑上,由于ADSL网速原因,安装ADT时卡住了,今天在公司很快就搞定了:1.安装android sdk 2.下载安装eclipse ADT 3.调试其中的例子,运行AVD查看效果...…

数据挖掘算法(Analysis Services – 数据挖掘)

“数据挖掘算法”是创建数据挖掘模型的机制。…

杂谈研发人员主要精力应该干什么

好的产品需要好的研发做后盾。在大金融危机时代,公司削减投入,员工的工作量自然也就会相应增加。这可是很矛盾的。没好的投入,哪会愿意干活-- 做为研发人员,在我看来不应该参加口水战当中。好的研发人员,需要有过硬的专业技能、分析分派问题能力、指导解决问题的能力。 向行业老大看齐,apple,完美的pr…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。