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

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

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

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

首先,把编译SQLITE生成的DLL、LIB和sqlite3.h 放到项目的文件夹下,把项目=》属性=》链接器=》输入=》附加依赖项:输入SQLITE的lib文件名
一、创建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” 的相关文章

Linux下的CPU利用率计算原理详解

在Linux/Unix下,CPU利用率分为用户态,系统态和空闲态,而CPU利用率是指 CPU执行非系统空闲进程的时间 / CPU总的执行时间。…

ETC 纹理压缩和 Alpha 通道处理

  ETC 纹理压缩和 Alpha 通道处理…

DirectDraw简单用法

GDI:win32 gdi 与 DirectDraw 操作DIB的,DirectDraw 直接操作内存。…

android 签名

所有的android程序都需要签名1. 为什么要签名...…

nutch应用

    Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。    Nutch 0…

关于wince OS开发面试问题的总结系列之OAL

关于wince OS开发面试问题的总结系列之OAL…

发表评论

访客

看不清,换一张

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