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

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

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

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” 的相关文章

10条基本的工作要点

  刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。 如何在涉世之初少走弯路,有一个好的开头。好好地遵循、把…

ant中copy操作学习心得

文章来源:http://www.blogjava.net/hh-lux/archive/2006/12/10/86635.htmlant中copy操作学习心得Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.…

第一个win32程序

#include "stdafx.h" LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstatn…

怎样使用Eclipse来开发Android源码

用eclipse + ADT作为android开发工 具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么,我们可以用 eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许…

游戏逻辑框架

游戏客户端,功能模块分法,引擎封装模块、游戏数据管理模块、应用配置模块、日志记录模块、网络管理模块、消息事件机制模块、输入输出模块、音效管理模块、UI系统模块、逻辑系统处理模块、调试器控制模块 基于cocos2d-x引擎的游戏框架设计...…

技术的问题,可用网站

很多问题是可以能过搜索引擎来找到答案的.今天看到一篇文章里面的网站很有用,转过来用了.…

发表评论

访客

看不清,换一张

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