精华内容
下载资源
问答
  • Sqlite3

    千次阅读 2012-03-04 20:26:57
    Sqlite3源代码下载地址: http://www.opensource.apple.com/source/SQLite/SQLite-74/   在Windows下编译sqlite3,生成动态链接库并使用 一. 编译动态链接库库文件 下面的是我的编译过程,或许对你有些帮助:...

    Sqlite3源代码下载地址:

    http://www.opensource.apple.com/source/SQLite/SQLite-74/

     

    在Windows下编译sqlite3,生成动态链接库并使用

    一. 编译动态链接库库文件

    下面的是我的编译过程,或许对你有些帮助:

    1). 打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3
    2). 在接下来的对话框中选择"An empty DLL project",点 FINISH->OK
    3). 将源码中所有的 *.c *.h *.def 复制到工程文件夹下
    4). 在工程的Source File中添加你下载到的SQLite源文件中所有*.c文件,
    注意这里不要添加shell.c和tclsqlite.c这两个文件。
    5). 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
    6). 在Header File中添加你下载到的SQLite源文件中所有*.h文件,
    7). 开始编译,Build(F7)一下
    也许到这里会遇到一个错误:

    e:\zieckey\sqlite\sqlite3\sqlite3ext.h(22) : fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory

    经检查发现,源码中包含sqlite3.h都是以 #include <sqlite3.h> 方式包含的,
    这就是说编译器在系统默认路径中搜索,这样当然搜索不到 sqlite3.h 这个头文件啦,
    这时可以改为 #include "sqlite3.h" ,让编译器在工程路径中搜索,
    但是如果还有其他地方也是以 #include <sqlite3.h> 方式包含的,那么改源码就显得有点麻烦,
    好了,我们可以这样,在菜单栏依次选择:Tools->Options...->Directeries
    在下面的Directeries选项中输入你的 sqlite3.h 的路径,这里也就是你的工程目录.
    添加好后,我们在编译一下就好了,
    最后我们在工程目录的 Debug 目录生成了下面两个重要文件:
    动态链接库文件 sqlite3.dll 和引入库文件 sqlite3.lib


    二. 使用动态链接库

    下面我们来编写个程序来测试下我们的动态链接库.

    在VC下新建一个空的"Win32 Console Application" Win32控制台程序,工程命名为:TestSqliteOnWindows
    再新建一个 test.cpp 的C++语言源程序,源代码如下:

    // name: test.cpp
    // This prog is used to test C/C++ API for sqlite3 .It is very simple,ha !
    // Author : zieckey
    // data : 2006/11/28

    #include <stdio.h>
    #include <stdlib.h>
    #include "sqlite3.h"
    #define _DEBUG_

    int main( void )
    ...{
    sqlite3 *db=NULL;
    char *zErrMsg = 0;

    int rc;

    rc = sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
    if( rc )
    ...{
    fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
    sqlite3_close(db);
    return (1);
    }
    else printf("You have opened a sqlite3 database named zieckey.db successfully! Congratulations! Have fun ! ^-^  ");


    //创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
    char *sql = " CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

    #ifdef _DEBUG_
    printf("zErrMsg = %s  ", zErrMsg);
    #endif

    //插入数据
    sql = "INSERT INTO "SensorData" VALUES(NULL , 1 , 1 , '200605011206', 18.9 );" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

    sql = "INSERT INTO "SensorData" VALUES(NULL , 23 , 45 , '200605011306', 16.4 );" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

    sql = "INSERT INTO "SensorData" VALUES(NULL , 34 , 45 , '200605011306', 15.4 );" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );


    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  " , nrow , ncolumn );
    printf( " The result of querying is :  " );
    for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
    printf( "azResult[%d] = %s ", i , azResult[i] );

    //删除数据
    sql = "DELETE FROM SensorData WHERE SensorID = 1 ;" ;
    sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
    #ifdef _DEBUG_
    printf("zErrMsg = %s  ", zErrMsg);
    #endif
    sql = "SELECT * FROM SensorData ";
    sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
    printf( " row:%d column=%d " , nrow , ncolumn );
    printf( " After deleting , the result of querying is :  " );
    for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
    printf( "azResult[%d] = %s ", i , azResult[i] );


    //释放掉 azResult 的内存空间
    sqlite3_free_table( azResult );

    #ifdef _DEBUG_
    printf("zErrMsg = %s  ", zErrMsg);
    #endif

    sqlite3_close(db); //关闭数据库
    return 0;
    }

     

    另外,将sqlite3.h sqlite3.lib sqlite3.dll文件复制到我们的工程目录.
    最后 Project->Settings 在Link选项卡找到Object/library modules : 在最后填入sqlite3.lib 。
    如果原来就有链接,请使用空格分隔。
    现在可以编译了.
    运行结果如下:
    You have opened a sqlite3 database named zieckey.db successfully!
    Congratulations! Have fun ! ^-^
    zErrMsg = (null)
    row:3 column=5

    The result of querying is :
    azResult[0] = ID
    azResult[1] = SensorID
    azResult[2] = SiteNum
    azResult[3] = Time
    azResult[4] = SensorParameter
    azResult[5] = 1
    azResult[6] = 1
    azResult[7] = 1
    azResult[8] = 200605011206
    azResult[9] = 18.9
    azResult[10] = 2
    azResult[11] = 23
    azResult[12] = 45
    azResult[13] = 200605011306
    azResult[14] = 16.4
    azResult[15] = 3
    azResult[16] = 34
    azResult[17] = 45
    azResult[18] = 200605011306
    azResult[19] = 15.4
    zErrMsg = (null)


    row:2 column=5
    After deleting , the result of querying is :
    azResult[0] = ID
    azResult[1] = SensorID
    azResult[2] = SiteNum
    azResult[3] = Time
    azResult[4] = SensorParameter
    azResult[5] = 2
    azResult[6] = 23
    azResult[7] = 45
    azResult[8] = 200605011306
    azResult[9] = 16.4
    azResult[10] = 3
    azResult[11] = 34
    azResult[12] = 45
    azResult[13] = 200605011306
    azResult[14] = 15.4
    zErrMsg = (null)
    Press any key to continue

    这个程序,我们先创建一个数据库,然后新建一个表,然后插入一些数据,
    再查询看看插入的数据是否正确,然后又删除一些数据,删除后我们再查询了一下,
    发现我们的删除操作也是成功的.
    这个程序简单的调用 sqlite 的函数接口来实现对数据库的管理,
    包括创建数据库、创建表格、插入数据、查询数据、删除数据等。


    注:在上面的第五步
    5). 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
    是必须的, sqlite3.def 这个文件的加入会生成 *.lib引入库文件,这个对于*.dll文件是很重要的.否则你光有*.dll文件在程序调用的时候就不是那么方便了,因为这样你只能通过动态加载dll的方式调用dll库中函数

    三、如何编译sqlite3.4.2版本 (本人原创:添加于 2007年9月29日)

    其实这个版本的比之前的更好编译而且很简单。

    步骤如下:
    1、在网站下载源文件,选择“sqlite-amalgamation-3_4_2.zip”下载,地址http://www.sqlite.org/sqlite-amalgamation-3_4_2.zip。此文件中包含了sqlite3.h和sqlite3.c两个文件。

    2、下载“sqlitedll-3_4_2.zip”,地址 http://www.sqlite.org/sqlitedll-3_4_2.zip,次文件中包含编译好的DLL文件和DEF文件,DEF文件用来在编译时生成lib文件。(重点)

    3、打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3
    4、 在接下来的对话框中选择"An empty DLL project",点 FINISH->OK
    5、将解压后的 *.c *.h *.def 复制到工程文件夹下
    6、在工程的Source File中添加你下载到的SQLite源文件中sqlite3.c文件,
    7、 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
    8、在Header File中添加你下载到的SQLite源文件中的sqlite3.h文件,
    9、 开始编译,Build(F7)一下

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/leon_founder/archive/2006/12/28/1465944.aspx

    展开全文
  • Sqlite3类库,sqlite数据库开发时,需要用到Sqlite3类库,快速开发必备。
  • 32位及64位的sqlite3.h、sqlite3.lib、sqlite3.dll下载
  • SQLite 安装包 sqlite3 及sqlite数据库jdbc jar包 2分不能再少了
  • Sqlite3加密函数sqlite3_key sqlite3_rekey

    千次阅读 2019-10-10 15:41:45
    sqlite3_key sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作;如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。 ...

    sqlite3_key

    sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作;如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。

    int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),
    db 是指定数据库,pKey 是密钥,nKey 是密钥长度。
    例:sqlite3_key( db, "abc", 3);

    sqlite3_rekey

    sqlite3_rekey是变更密钥或给没有加密的数据库添加密钥或清空密钥,变更密钥或清空密钥前必须先正确执行 sqlite3_key。在正确执行 sqlite3_rekey 之后在 sqlite3_close 关闭数据库之前可以正常操作数据库,不需要再执行 sqlite3_key。
     

    int sqlite3_rekey( sqlite3 *db, const void *pKey, int nKey),参数同上。
    清空密钥: 
    sqlite3_rekey( db, NULL, 0)。

    添加数据库密码:如果想要添加密码,则可以在创建数据库文件之后,关闭数据库文件之前的任何时刻调用sqlite3_key函数即可

    读取数据库数据:打开数据文件之后,调用sqlite3_key函数,即可(如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误;经测试,只能在新建数据库时设置密码!)

    修改数据库密码: 首先你需要使用当前的密码正确的打开数据库,之后你可以调用sqlite3_rekey(db,"112233",6) 来更改数据库密码。

    删除数据库密码:首先你需要使用当前的密码正确的打开数据库,之后你可以调用sqlite3_rekey(db,"112233",6) 来删除数据库密码。

    展开全文
  • sqlite3.h sqlite3头文件

    热门讨论 2010-04-08 04:04:14
    sqlite3.h sqlite3头文件~~~~~~~
  • sqlite3sqlite3_column 函数

    千次阅读 2019-05-28 17:54:37
    该函数实例用于 查询(query)结果的筛选,返回当前...int sqlite3_column_int(sqlite3_stmt*, int iCol); double sqlite3_column_double(sqlite3_stmt*, int iCol); const unsigned char *sqlite3_column_text(sqlite...

        该函数实例用于 查询(query)结果的筛选,返回当前结果的某1列。

    常用函数为:

    int sqlite3_column_int(sqlite3_stmt*, int iCol);
    double sqlite3_column_double(sqlite3_stmt*, int iCol);
    const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
    
    参数:	
            sqlite3_stmt* : 准备结构参数指针。
    		
            iCol:要查询的"列"索引值。sqlite3规定最左侧的“列”索引值是 0,也就是“列”索引号从 0 开始。
    
    返回: 根据函数类型,返回相应的数据,比如int型,double型(浮点数也是),text(字符串型)。。。等。

    代码示例:
        假设表的字段结构为:person(name,age,sex),数据库指针为 pdb。

        

        sqlite3_stmt *pstmt;
    	const char *sql = "SELECT* FROM person;";
    	nRet = sqlite3_prepare_v2(pdb, sql, strlen(sql), &pstmt, &pzTail);
    
    	while(sqlite3_step( pstmt ) == SQLITE_ROW){
    		nCol = 0;
    		pTmp = sqlite3_column_text(pstmt, nCol++);
    		printf("%s|", pTmp);
    
    		age = sqlite3_column_int(pstmt, nCol++);
    		printf("%d|", age);
    
    		pTmp = sqlite3_column_text(pstmt, nCol++);
    		printf("%s\n", pTmp);
    
    		//注意,这里就不能够运行 sqlite3_reset(pstmt); 因为查询命令会循环返回所有的数据,
            //每次返回一次 SQLITE_ROW,
    		//如果我们重置pstmt,相当于终止了查询结果。
    	}
    
    	sqlite3_finalize(pstmt);

     

    展开全文
  • sqlite3sqlite3_bind 函数

    千次阅读 2019-05-28 17:51:46
    前面的文章讲过,我们一定是先通过sqlite3_prepare_v2函数创建并初始化一个 sqlite3_stmt 变量语句,然后使用sqlite3_bind_xxx函数对 这个 sql语句变量进行绑定参数。 常用的sqlite3_bind函数: int sqlite3_bind...

        该函数组用于绑定变量值到 prepare 语句中,也就是给 sqlite3_stmt变量赋值。前面的文章讲过,我们一定是先通过sqlite3_prepare_v2函数创建并初始化一个 sqlite3_stmt 变量语句,然后使用sqlite3_bind_xxx函数对 这个 sql语句变量进行绑定参数。

    常用的sqlite3_bind函数:

    int sqlite3_bind_int(sqlite3_stmt*, int, int);
    int sqlite3_bind_doubule(sqlite3_stmt*, int, double);
    int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int, void(*)(void*));
    
    参数:
        sqlite3_stmt: 准备语句变量指针。
    		 
        第2个形参: sqlite3_stmt变量参数的序号索引值,规定最左侧的SQL参数的索引值为 1,也就是说参数索
                   引值从1开始。
        
        第3个形参: 是要绑定给第2个形参指向的 变量参数的 实际值。第2个形参可以指向不同的索引值。
    		
        第4个形参: 对于有4个形参的函数,第4个形参一般是第3个形参的长度。
    	
        第5个形参: 是用于BLOB和字符串绑定后的 析构函数,用于在sqlite处理完blob或字符串之后处理它,一
                   般可以设置为NULL。

      代码示例:
        假设表的字段结构为:person(name,age,sex),数据库指针为 pdb。

        sqlite3_stmt *pstmt;
    	const char *sql = "INSERT INTO person(name, age, sex) VALUES(?,?,?);";
    	nRet = sqlite3_prepare_v2(pdb, sql, strlen(sql), &pstmt, &pzTail);
    	int i;
    
    	for(i = 0; i < 10; i++){
    		nCol = 1;
    		sqlite3_bind_text(pstmt, nCol++, a[i].name, strlen(a[i].name), NULL);
    		sqlite3_bind_int(pstmt, nCol++, a[i].age);
    		sqlite3_bind_text(pstmt, nCol++, a[i].sex, strlen(a[i].name), NULL);
    
    		sqlite3_step(pstmt);
    		sqlite3_reset(pstmt);
    	}
    
    	sqlite3_finalize(pstmt);

     

    展开全文
  • sqlite3 源码

    热门讨论 2013-05-06 20:11:20
    sqlite3源码 ,欢迎下载 源码文件包括sqlite3.c,sqlite3.h,sqlite3ext.h
  • SQLite | Python3导入csv到SQLite3

    千次阅读 2019-10-02 01:38:53
    From CSV to SQLite3 by Python SQLite 创建数据库 sqlite3 drugbank.db #创建drugbank.db数据库 .open drugbank.db #打开drugbank.db数据库 ...
  • sqlite3: sqlite3_step 函数

    万次阅读 2019-05-28 17:48:25
    上一篇文章中,我们通过sqlite3_prepare_v2初始化sqlite3_stmt 数据(预编译)后,就可以通过sqlite3_step函数来执行。 返回值: SQLITE_BUSY:当前数据库不能获取数据库锁,也就不能完成相应的操作,如果执行语句是 ...
  • sqlite3.exe绿色版 下载

    万次下载 热门讨论 2013-10-01 17:27:26
    SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作...
  • 深入理解SQLite3sqlite3_exec及回调函数

    万次阅读 多人点赞 2019-05-20 21:41:13
    sqlite3的C/C++接口API主要有3个重要函数,分别为 1、sqlite3_open(const char* filename, sqlite3 **ppDb); 2、int sqlite3_exec( sqlite3*, /* An open database */ const ch...
  • sqlite3入门基础、sqlite3常用函数

    千次阅读 2018-11-04 11:57:27
    int sqlite3_open(const char *filename, sqlite3 **ppDb ); 功能:打开数据库链接 参数:filename:数据库的路径和文件名 ppdb:数据库句柄。 返回:成功 SQLITE_OK (值为0),否则返回其他值。 2、回调函数执行...
  • sqlite3.exe

    热门讨论 2016-11-22 09:31:37
    sqlite3.exe
  • sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。   int ...
  • sqlite3:深入理解sqlite3_stmt 机制

    千次阅读 2019-05-28 11:01:56
    我们在使用sqlite3的过程中,涉及到批量操作时(批量插入、批量读。。。),总会遇到 sqlite3_stmt这个数据类型,按照官方解释说法是这样的:sqlite3_stmt是C接口中“准备语句对象”,该对象是一条SQL语句的实例,...
  • sqlite3可视化工具

    千次下载 热门讨论 2017-01-11 11:35:19
    sqlite3可视化工具
  • sqlite3使用方法

    万次阅读 多人点赞 2019-09-06 22:20:46
    sqlite3非常小,轻量级,就几百K大小;不需要用户名,密码,直接就可以对数据库进行操作。 二、安装sqlite3 1.安装sqlite3 sudo apt-get install sqlite3 2.安装库文件 sudo apt-get install libsqlite3-dev ...
  • sqlite3介绍

    千次阅读 2018-03-12 22:22:25
    数据库:嵌入式数据库-》sqlite3安装sqlite3数据库:sudo apt-get install sqlite3*操作数据库:命令行:是以.开头的命令是sqlite3系统自带的命令.exit :退出.quit :退出.help :查看sqlite3的帮助手册.database ...
  • golang使用sqlite3

    万次阅读 2018-10-30 23:03:53
    最近会使用到sqlite3,这里作个记录,记性越来越差就是这样。 package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" ) func main() { fmt.Println(&...
  • pip安装sqlite3

    千次阅读 2020-04-07 17:25:14
    pip安装sqlite3 pip install pysqlite3
  • 1.安装sqlite3: 输入命令sudo apt-get install sqlite3 如下图(因为我的已经是sudo模式下,所以输入命令的时候没有打sudo) 等到跳出Do you want to continue? [Y/n] 的时候,输入Y回车即可 2.然后进入你的数据库...
  • SQLITE3.exe

    热门讨论 2011-05-02 23:23:30
    SQLITE3.EXE sqlite数据库
  • sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。 int sqlite3...
  • Python3以上版本安装sqlite3的解决方案

    万次阅读 2018-04-26 13:31:37
    no mudole named _sqlite32.mportError: dynamic module does not define module export function (PyInit__caffe)其实这两个问题都是因为python3以上版本不太支持sqlite3,下面的方法是亲测没问题,来自...
  • Sqlite3+VB

    热门讨论 2015-02-06 08:00:10
    非原创,感谢原作者。VB下使用Sqlite3,网上代码很多,但要筛选使用。这个测试可用。因为博客没法上传文件,所以上传在这里。
  • sqlite3 for Android

    千次下载 热门讨论 2013-07-31 18:31:10
    从模拟器中抽取出来的,用以支持android4.0以上版本的sqlite,替换掉手机中的同名文件即可。...如果手机运行sqlite3提示不存在或报错,证明版本不符,可以在ADT上运行同版本模拟器,再从模拟器中提取对应的文件。
  • CentOS 升级sqlite3

    千次阅读 2019-07-09 11:46:15
    1、yum remove sqlite3(基本可以不用,后面是直接覆盖的方式) 2、下载安装包 sqlite3下载地址:https://www.sqlite.org/download.html wget下载: wget -O sqlite-autoconf-3280000.tar.gz ...
  • Nodejs 操作Sqlite3数据库

    万次阅读 2018-07-24 15:49:34
    1、安装Nodejs ... 2、安装sqlite3包 用npm包安装sqlite3。通过命令npm install sqlite3 –g安装,安装成功之后可以用npm list sqlite3 –g看对应sqlite3版本,本文版本是 sqlite3@4.0.2。 3、sqlite...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 274,579
精华内容 109,831
关键字:

sqlite3