SQLite3 Database manipulate

SQLite3 Database manipulate
SQLite3 Database manipulate

Table of Contents

1. Database basics –SQL

2. The core C API –basics

1. Database basics

<1> Creating a database that we will call gps.db:

# sqlite3 gps.db

SQLite version 3.6.23.1

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> .exit

<2> Now you have a database file on disk called gps.db

# ls

gps.db test

<3> Create a table. Issue the following statement from the shell: sqlite> create table pos(pos_x varchar(10), pos_y varchar(10));

<4> Add a few rows to the table:

sqlite> insert into pos values('234.2', '678.8');

sqlite> insert into pos values('824.5', '926.7');

sqlite> insert into pos values('176.5', '278.0');

<5> Now fetch them back:

sqlite> .headers on

sqlite> select * from pos;

pos_x|pos_y

234.2|678.8

824.5|926.7

176.5|278.0

<5> Getting table information:

sqlite> .tables

pos

sqlite> .schema

CREATE TABLE pos(pos_x varchar(10), pos_y varchar(10)); sqlite> .indices

<6> Exporting Data:

sqlite> .output gps.sql

<7> View configure information:

sqlite> .show

echo: off

explain: off

headers: on

mode: list

nullvalue: ""

output: stdout

separator: "|"

width:

2. The core C API

<1>some basics API

Opening A New Database Connection

int sqlite3_open(

const char *filename, /* Database filename (UTF-8) */

sqlite3 **ppDb /* OUT: SQLite db handle */

);

int sqlite3_open16(

const void *filename, /* Database filename (UTF-16) */

sqlite3 **ppDb /* OUT: SQLite db handle */

);

int sqlite3_open_v2(

const char *filename, /* Database filename (UTF-8) */

sqlite3 **ppDb, /* OUT: SQLite db handle */

int flags, /* Flags */

const char *zVfs /* Name of VFS module to use */ );

Compiling An SQL Statement

int sqlite3_prepare(

sqlite3 *db, /* Database handle */

const char *zSql, /* SQL statement, UTF-8 encoded */

int nByte, /* Maximum length of zSql in bytes. */

sqlite3_stmt **ppStmt, /* OUT: Statement handle */

const char **pzT ail /* OUT: Pointer to unused portion of zSql */ );

int sqlite3_prepare_v2(

sqlite3 *db, /* Database handle */

const char *zSql, /* SQL statement, UTF-8 encoded */

int nByte, /* Maximum length of zSql in bytes. */

sqlite3_stmt **ppStmt, /* OUT: Statement handle */

const char **pzT ail /* OUT: Pointer to unused portion of zSql */ );

int sqlite3_prepare16(

sqlite3 *db, /* Database handle */

const void *zSql, /* SQL statement, UTF-16 encoded */

int nByte, /* Maximum length of zSql in bytes. */

sqlite3_stmt **ppStmt, /* OUT: Statement handle */

const void **pzT ail /* OUT: Pointer to unused portion of zSql */

);

int sqlite3_prepare16_v2(

sqlite3 *db, /* Database handle */

const void *zSql, /* SQL statement, UTF-16 encoded */

int nByte, /* Maximum length of zSql in bytes. */

sqlite3_stmt **ppStmt, /* OUT: Statement handle */

const void **pzT ail /* OUT: Pointer to unused portion of zSql */ );

Destroy A Prepared Statement Object

int sqlite3_finalize(sqlite3_stmt *pStmt);

Closing A Database Connection

int sqlite3_close(sqlite3 *);

Convenience Routines For Running Queries

int sqlite3_get_table(

sqlite3 *db, /* An open database */

const char *zSql, /* SQL to be evaluated */

char ***pazResult, /* Results of the query */

int *pnRow, /* Number of result rows written here */

int *pnColumn, /* Number of result columns written here */

char **pzErrmsg /* Error msg written here */

);

void sqlite3_free_table(char **result);

One-Step Query Execution Interface

int sqlite3_exec(

sqlite3*, /* An open database */

const char *sql, /* SQL to be evaluated */

int (*callback)(void*,int,char**,char**), /* Callback function */

void *, /* 1st argument to callback */

char **errmsg /* Error msg written here */

);

<2>program

Compile arm format file:

arm-linux-gcc -I/home/furtherchan/work/sqlite_porting/sqlite_build/include -

L/home/furtherchan/work/sqlite_porting/sqlite_build/lib -o c_api_sqlite c_api_sqlite.c -lsqlite3

furtherchan@further:~/work/sqlite_porting$ ll c_api_sqlite

-rwxr-xr-x 1 furtherchan furtherchan 9488 2010-06-23 15:25 c_api_sqlite furtherchan@further:~/work/sqlite_porting$ arm-linux-strip c_api_sqlite furtherchan@further:~/work/sqlite_porting$ ll c_api_sqlite

-rwxr-xr-x 1 furtherchan furtherchan 4040 2010-06-23 15:26 c_api_sqlite

sqlite3常用命令及语法

https://www.360docs.net/doc/4611126699.html,/linchunhua/article/details/7184439 sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,SQLite 大量的被用于手机,PDA,MP3播放器以及机顶盒设备。 Mozilla Firefox使用SQLite作为数据库。 Mac计算机中的包含了多份SQLite的拷贝,用于不同的应用。 PHP将SQLite作为内置的数据库。 Skype客户端软件在内部使用SQLite。 SymbianOS(智能手机操作平台的领航)内置SQLite。 AOL邮件客户端绑定了SQLite。 Solaris 10在启动过程中需要使用SQLite。 McAfee杀毒软件使用SQLite。 iPhones使用SQLite。 Symbian和Apple以外的很多手机生产厂商使用SQLite。 下面就sqlite中的常用命令和语法介绍 https://www.360docs.net/doc/4611126699.html,/download.html可下载不同操作系统的相关版本sqlite gedit 也可以使用火狐中的插件sqlite manager 新建数据库 sqlite3 databasefilename 检查databasefilename是否存在,如果不存在就创建并进入数据库(如果直接退出,数据库文件不会创建)如果已经存在直接进入数据库对数据库进行操作 sqlite中命令: 以.开头,大小写敏感(数据库对象名称是大小写不敏感的) .exit .help 查看帮助针对命令 .database 显示数据库信息;包含当前数据库的位置 .tables 或者.table 显示表名称没有表则不显示 .schema 命令可以查看创建数据对象时的SQL命令; .schema databaseobjectname查看创建该数据库对象时的SQL的命令;如果没有这个数据库对象就不显示内容,不会有错误提示 .read FILENAME 执行指定文件中的SQL语句 .headers on/off 显示表头默认off .mode list|column|insert|line|tabs|tcl|csv 改变输出格式,具体如下 sqlite> .mode list sqlite> select * from emp; 7369|SMITH|CLERK|7902|17-12-1980|800||20 7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30 如果字段值为NULL 默认不显示也就是显示空字符串

Office办公文秘使用技巧_秘书基础

Office办公文秘使用技巧_秘书基础 “。接着单击“格式”为数字设置一些特殊格式,比如字体加大、文字加粗以及特殊颜色等。最后单击“全部替换”就可以了。不过要注意,它会让文档中的所有数字都改变的。 查找对话框中的快捷键 执行“编辑-查找”命令,或者按“Ctrl+F”键调出查找对话框,会发现对话框中的许多项目之后都有一个带下划线的字母,这就是此项的快捷键了,不过一定要先按Alt键才能让它们起作用,比如按“Alt+F”,是查找下一处,按“Alt+M”是打开高级选项,按Alt+D/P/G,是在查找、替换、定位这三个选项卡中切换等(本技巧同样适合其它的对话框)。 另外,在office20xx中进行查找/替换时,我们经常会在不关闭查找/替换对话框的情况下,切换到正文中进行修改,然后再回到查找/替换对话框中继续操作,一般都是通过鼠标点击进行切换,其实直接按Ctrl+Tab键就可以了,非常方便。 在最后一次搜索结果中快速浏览 当你搜索完毕,退出查找对话框后,如果想回过头看看刚才的搜索结果,这时不用再打开查找对话框,直接按Ctrl+PageUp键或Ctrl+PageDown键,就可以在上一次的搜索结果中快速浏览了。 高亮显示所有搜索出来的结果 为了让搜索出来的结果更醒目,可以让搜索的结果内容高亮显示出来。操作很简单:在查找对话框中选中“突出显示所有在该范围找出的项目”就可以了。 替换时巧妙保留书签

假设在word中有这么一段文本:This agreement between [John Doel] and [Mary Smith] is entered into freely and without compulsion. 其中括号括起来的部分表示定义了书签,括号是为了让大家看的清楚,真实文本中并没有出现。如果在进行替换操作时,将两个人物名称换成了其它人名,那么书签也会随之丢失。大家在定义书签时,将人名前后的空格都包括进来,如下所示:This agreement between[ John Doel ]and[ Mary Smith ]is entered into freely and without compulsion. 使用图片替换文本 有时我们可能想用图片来替换某些文本,比如,你可能想用公司的Logo图片来替换文档中的所有公司名称,可通过下面的步骤来实现: 第一步:图片插入到文档中,选取它,再按Ctrl+X键剪切把它放到系统的剪贴板中。 第二步:按“Ctrl+H”键调出替换对话框,在“查找内容”中输入要替换的文本,在“替换为”中输入“”(不含引号,下同)。 第三步:可以单击“查找下一处”、“替换”一个一个替换,也可以单击“全部替换”一次性全部替换。这时文档中的被替换的文字,就都会成图论文,会大量出现一些同样的术语或关键词,如果想让这些术语或关键词有一个统一的格式,不用一个一个设置,用替换功能很快就能完成。 第一步:找到要设置格式的第一个术语或关键词(如:“虚拟现实”),设置它的大小、字体、颜色等格式。选中设置好的术语,按“Ctrl+C”键将它复制到剪切板上。 第二步:按“Ctrl+H”键调出替换对话框,在“查找内容”中输入“虚拟

SQLITE3的操作方法及应用

数据库的操作 我们在这个项目中使用的是SQLITE3数据库软件。 通过使用SQLITE3进行创建数据库,创建表,插入记录,查询记录,更新记录,关闭数据库等操作来实现将相应的数据存入数据库中。 1.打开数据库,创建表 1.1sqlite*db;定义一个sqlite*的变量 sqlite3_open(“./link.db”,&db); 在当前目录下打开一个名为link.db的数据库,若是没有则在当前目录下创建一个名为link.db 的数据库。 1.2sql="create table weblink(id integer primary key,domain text,page text,fromdomain text,status integer);" 在已打开的数据库中创建一个名weblink的表。表的属性如下: id integer primary key:ID号(表中黙认包含的) domain text:域名 page text:子网页 fromdomain text:源域名 status integer:状态标志 1.3sqlite3_exec(db,sql,NULL,NULL,NULL); 执行一条sql语句的函数。 函数原型:int sqlite3_exec(sqlite3*,const char*sql,sqlite3_callback,void*,char**errmsg) 第1个参数是前面open函数得到的指针。说了是关键数据结构。 第2个参数const char*sql是一条sql语句,以\0结尾。 第3个参数sqlite3_callback是回调,当这条语句执行之后,sqlite3会去调用你提供的这个函数。(什么是回调函数,自己找别的资料学习) 第4个参数void*是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里面,如果不需要传递指针给回调函数,可以填NULL。等下我们再看回调函数的写法,以及这个参数的使用。 第5个参数char**errmsg是错误信息。注意是指针的指针。sqlite3里面有很多固定的错误信息。执行sqlite3_exec之后,执行失败时可以查阅这个指针(直接printf(“%s\n”,errmsg))得到一串字符串信息,这串信息告诉你错在什么地方。sqlite3_exec函数通过修改你传入的指针的指针,把你提供的指针指向错误提示信息,这样sqlite3_exec函数外面就可以通过这个char*得到具体错误提示。 说明:通常,sqlite3_callback和它后面的void*这两个位置都可以填NULL。填NULL表

sqlite 基本操作 全

sqlite3本地数据库学习 sqlite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比mysql还快,专门用于移动设备上进行适量的数据存取,它只是个文件,不需要服务器进程。 常用术语:表(table)、字段(colum,列,属性)、记录(row,record) 关键字:select、insert、updete、delete、from、creat、where、desc、order、by、group、table、alter、view、index等。 1、安装sqlite3 sudo()apt-get()install()sqlite3 2、存储类型 integer 整型:int,shoert,long text 文本字符串:string real 浮点型:float,double blob 二进制 3、字段结束 not null:字段的值不能为空 unique:字段的值必须是唯一的 default:指定字段的默认值 primarykey:主键,用来唯一的标识某条记录,相当于记录的身份证。主键可以是一个或多个字段,应由计算机自动生成和管理。主键字段默认包含了not null和unique两个约束。 autoincrement:当主键是integer类型时,应该增加autoincrement约束,能实现主键值的自动增长。 外键:利用外键可以用来建立表与表之间的联系,一般是一张表的某个字段,引用着另一张表的主键。 4、创建数据库usr.db在当前目录下 sqlite3()usr.db 5、创建表格,表格内容以树状存储 create()table()表名(字段名1()字段类型1,字段名2()字段类型2...) 6、数据库中不能使用关键字命名表和字段,不区分大小写,每条语句后加";"结尾 7、删除表格 drop()table()表名 8、向表格里添加数据 insert()into()表名(字段1,字段2...)values(字段1的值,字段2的值...) 8、修改表中的数据 updata()表名()set()字段1=字段1的值,字段2=字段2的值... //将字段为name全部修改成'Tom' updata()stu()set()name='Tom'; //将字段为id=1001的字段name修改成'Tom' updata()stu()set()name='Tom'()where()id=1001; //将字段为id=1001同时字段name='lisi'的字段name修改成'Tom' updata()stu()set()name='Tom'()where()id=1001()and()name='lisi'; 9、删除表中的数据

office办公软件使用技巧大全

办公软件使用技巧 1.同时保存所有打开的Word文档 有时在同时编辑多个Word文档时,每个文件要逐一保存,既费时又费力,有没有简单的方法呢?在按下Shift键的同时,单击“文件”菜单,大家看,已经多出了“同时保存”和“同时关闭”命令,这可就方便多了 2.巧妙设置文档保护 在用Word 2000/XP打印一份文件时,忽然头儿有要事吩咐,要暂时离开一下,关闭文件吧,既费事又没必要,但又不想辛辛苦苦写的文件被别人破坏了。怎么办呢?执行“工具”菜单中的“保护文档”命令,在弹出的窗口中选择“保护窗体”,然后设上密码。怎么样,光标跑到了文件头,任你怎么移动鼠标、敲击键盘就是无法编辑了,不错吧。等回来时,执行“工具”菜单中的“解除文档保护”命令,一切又正常了。 3.编辑长文件更轻松 相信大家都有这样的经历:在使用Excel、Word编辑长文档时,有时需要将文章开始的多处内容复制到文章末尾。但通过拖动滚动条来回移动非常麻烦,还会出错。其实只要将鼠标移动到滚动条上面的适当位置,发现鼠标指针变成双箭头,此时按住鼠标左键

向下拖动,文档编辑区会被一分为二。你只需在上面编辑区找到文章开头的内容,在下面编辑区找到需要粘贴的位置,这样你就可以复制内容了,而不必来回切换。这种方法特别适合复制相距很远且处数较多的内容。 4.给WPS文档添加水印 先用作图软件(画笔工具等)制作一张色彩非常淡的图片(直接将Word的水印效果图“抓”下来也行),然后打开需要添加水印的WPS文档,执行“格式→页面背景→设置”命令,打开“设置背景”对话框,切换到“图片”标签下,按“选择图片”按钮,选中刚才制作的图片,并进行适当设置后确定,就可以为文档设置上水印了。5.在金山文字中快速打开“页面设置” 在用金山文字2002处理文档时,一个最常用的操作就是设置页面。先执行“视图→标尺→水平(垂直)标尺”命令,展开“水平(垂直)标尺”打开,然后用鼠标在水平(垂直)标尺上双击,即可快速打开“页面设置”对话框,对页面进行设置了。 6.在Excel中插入拼音 在我们使用Excel时,常常会遇到十分孤僻的字,但加上拼音注释就能使人看得更明白。具体的方法是:选中想要加入拼音注释的表格,打开Excel的菜单栏中的“格式”菜单,选中“拼音信息/设置”

sqlite3使用教程

Sqlite3教程 一、基本命令 1、进入命令行环境: 显示版本号,并告诉每一条SQL语句必须用分号;结尾2、命令行帮助:

3、退出命令行环境 或者 二、数据库相关命令 1、创建(或打开)一个新的数据库:文件名 若文件存在,刚打开该文件;若文件不存在,则创建一个*.db数据库文件。 导入SQL语句文件。

、列出所有数据表: 4、显示数据库结构: 用一些SQL语句描述数据库的结构。 5、显示表的结构:表名 6、导入数据:文件名表名 若导入csv文件,设置分隔符为逗号。 、导出数据:文件名 查询结果默认在终端显示,查询表格结构,语句查询表格数据。设置查询目标后,查询结果显示在设置的文件中 文件名 然后输入sql查询语句,查询的结果显示在设置的文件中,不在终端显示 运行恢复导出到终端(标准输出)。 导出数据到excle表格中 设置分隔符为逗号: 设置导出文件名,后缀为csv: 查询语句:表名

三、数据显示命令 运行表名,显示全表的内容 1.设置分隔符:分隔符 默认分隔符是“|”。 2.设置显示模式:模式

默认的是list显示模式,一般使用column模式。 3.显示标题栏: 4.设置每一列的显示宽度: 5.列出当前显示格式设置情况: 四、数据库基本操作 1.数据库定义语言DDL 在关系型数据库中,数据库中的表table、视图、索引、关系和触发器等等,构成了数据库的架构。在SQL语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即DDL。 SQLite数据库引擎支持下列三种DDL语句: ●CREATE:创建 ●ALTER TABLE:改变表的结构 ●DROP:删除

SQLITE最基本操作

SQLite数据库的基本操作 main.xml(主布局)

android:orientation="vertical">

office使用窍门-office办公软件使用技巧大全

office办公软件使用技巧大全 1. 对Excel中的数据四舍五入 在Excel中的“四舍五入”函数—ROUND函数,它可以返回某个数值按指定位数四舍五入后的数值。只要在Excel提供的“数学与三角函数”中找到这个名为ROUND(number,num_digits)的函数。这个函数有两个参数,分别是number和num_digits。其 中number就是将要进行四舍五入的数值(或用公式计算的结果);num_digits则是希望得到的数值的小数点后的位数。 2. 让Word也能编辑WPS文件 目前,在中国大陆使用得最广泛的办公软件当数Word和WPS 了。然而这为资源的共享带来了一定的问题。如果想用Wordz编辑WPS文档,你得首先安装WPS文件转换器安装程序。该安装程序可在https://www.360docs.net/doc/4611126699.html,/softwareview.asp?softwareid=13925下载。双击安装该转换器,就可以使Word打开WPS文件格式。 在Word97/2000中测试成功。 鼠标点击选文的秘密 3. Word文档中将鼠标挪至屏幕左侧空白处,鼠标会由“I”形变为一个向右的斜箭头,单击,可选择一行;双击,可选择一段;三击,可全选。三击鼠标,对大多数人来说,还比较陌生,但很方便,你不妨一试。当然,全选有很多种方法,你可以按住鼠标左键拖曳至所需之处。你还可以用“Ctrl+A”,你也可以点击“编辑”菜单,选择“全选”。如果鼠标在段落中,双击,可选择一个词;三击,可选择这一段。 4. 高效跨页选取段落

许多人翻页会采取拖曳的方式,因不容易控制,往往很难做到准确。其实界面的最下面一行,有几个按钮,“录制”、“修订”、“扩展”、“改写”,平时总是灰色的,要应用它,必须双击使之变黑。要跨页选取段落,先单击你要选取的起始点,再将“扩展”激活,然后翻页找到你需要的终点,单击,这中间一大块就以反白的形式选择好了。如果想追加选择,不断地点击下去就是了,不必从头再来。还有一种更为简单的方法:单击要选取的段落的起点,翻页找到终点,按住Shift键再单击鼠标,即可以准确地选中你所需的部分。 Word计量单位“磅”变“厘米” 5. 平时我们大家在办公用Word的时候,是不是发现表格属性全都是以“磅”为单位的。这根本不符合中国的习惯和标准要求。要修改它先是点击“工具”菜单,然后选择“选项”栏,在弹出的对话框中点击“常规”选项,将计量单位改为“厘米”即可。 6. Excel中同时设置多个工作表单 使用Excel进行表单及数据的处理,常遇有许多工作表需要同时改变相同属性的情况。我们将鼠标置于工作表的切换窗口,点击右键,在弹出菜单项中选择“选定全部工作表”,其间所作设置会在“工作组”中令所有工作表生效。如果你所处理的表格为相同的格式,也可同时添加或删除相同的行和列,表格中对应的行或列的数值、内容也可进行设定,甚至对相同单元格中应用函数(公式)也能全部进行更改和替换。 7. 保持文档中图表的完整

sqlite3在Linux下的安装和使用

sqlite3在Linux下的安装和使用 2008-06-10 16:51:14| 分类:sqlite|字号订阅 一.sqlite3的安装和配置 下载sqlite3源码包 tar xvfz sqlite-src-3.3.5 cd sqlite-3.3.5 ./configure –no-tcl make (如果在arm板上用需修改Makefile,在LIBS 项中加入–L/usr/local/arm/3.3.2/lib 保存后退出.然后再make) 安装成功后生成文件将被复制到指定目录 再加入一个环境变量 vi /etc/profile 在export区域加入SQLITE3_PATH=/usr/local/sqlite-3.3.5 保存后退出 source /etc/profile 有用文件分别为$SQLITE3_PATH/include/sqlite3.h 头文件 $SQLITE3_PATH/bin/sqlite3 可执行文件 $SQLITE3_PATH/lib/libsqlite3.a https://www.360docs.net/doc/4611126699.html, libsqlite3.so -> libsqlite3.so.0.8.6 libsqlite3.so.0 -> libsqlite3.so.0.8.6 libsqlite3.so.0.8.6 在程序使用到数据库 #include

在.pro文件中添加: INCLUDEPATH +=$(SQLITE3_PATH)/include DEPENDPATH +=$(SQLITE3_PATH)/include LIBS +=-L$(SQLITE3_PATH)/lib LIBS +=-lsqlite3 保存后退出 tmake hello.pro –o Makefile make 二.程序的编写: sqlite3 *db; int rc = sqlite3_open(“data.db”,&db); //打开数据库data.db if(rc!=SQLITE_OK);//打开失败 创建表rc = sqlite3_exec(db,”create table student(ID integer primarykey,name nvarchar(32))”,NULL,NULL,&mrrmsg); 插入rc = sqlite3_exec(db,”insert into student values(…3?,?Zhang San?)”,0,0,&mrrmsg); 修改rc = sqlite3_exec(db,”update student set name=?Li Si? where ID=?4?”,0,0,&mrrmsg);删除rc = sqlite3_exec(db,”delete * from student where name=?Wang Wu?”,0,0,&mrrmsg); 查询是重点 回调式查询rc = sqlite3_exec(db,”select * from student where ID>2 and name<>?Zhang San?”,LoadInfo,NULL,&mrrmsg); 查询的结果通过LoadInfo函数来导出

SQLite3 API使用大全

SQLite3API使用大全E-mail:18918737 (at) qq dot com,智有不明

前序: (1) 一、版本 (1) 二、基本编译 (2) 三、 SQLITE操作入门 (2) (1)基本流程 (2) (2) SQL语句操作 (4) (3)操作二进制 (8) (4)事务处理 (10) 四、给数据库加密 (10) 五、后记 (25) 前序: Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。 这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但是,我没有尝试过在别的系统、别的编译器下编译,因此下面的叙述如果不正确,则留待以后修改。 下面我的代码仍然用 VC 编写,因为我觉得VC是一个很不错的IDE,可以加快代码编写速度(例如配合 Vassist )。下面我所说的编译环境,是VC2003。如果读者觉得自己习惯于 unix 下用 vi 编写代码速度较快,可以不用管我的说明,只需要符合自己习惯即可,因为我用的是标准 C 或 C++ 。不会给任何人带来不便。 一、版本 从https://www.360docs.net/doc/4611126699.html,网站可下载到最新的 sqlite 代码和编译版本。我写此文章时,最新代码是 3.3.17 版本。 很久没有去下载 sqlite 新代码,因此也不知道 sqlite 变化这么大。以前很多文件,现在全部合并成一个 sqlite3.c 文件。如果单独用此文件,是挺好的,省去拷贝一堆文件还担心有没有遗漏。但是也带来一个问题:此文件太大,快接近7万行代码,VC开它整个机器都慢下来了。如果不需要改它代码,也就不需要打开 sqlite3.c 文件,机器不会慢。但是,下面我要写通过修改 sqlite 代码完成加密功能,那时候就比较痛苦了。如果个人水平较高,建议用些简单的编辑器来编辑,例如 UltraEdit 或 Notepad 。速度会快很多。 二、基本编译 这个不想多说了,在 VC 里新建 dos 控制台空白工程,把 sqlite3.c 和 sqlite3.h 添加到工程,再新建一个 main.cpp 文件。在里面写: extern "C" { #include "./sqlite3.h" }; int main( int , char** ) { return 0; }

Sqlite使用文档

SQLite的配置和使用文档 一.引言: 本文将简要介绍如何在Linux和ARM-Linux平台上移植SQLite嵌入式数据库,以及一些简单的测试案例。 嵌入式数据库采用程序方式直接驱动,而传统数据库则采用引擎响应方式驱动。由于嵌入式数据库的体积通常很小,这使得嵌入式数据库常常应用在移动设备上。 SQLite是一种嵌入式数据库。SQLite的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现那些对于数据库而言非常必要的功能。尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色由于SQLite具有功能强大、接口简单、速度快、占用空间小等优点,因此特别适合于应用在嵌入式环境中。SQLite在手机、PDA、机顶盒等设备上已获得了广泛应用。 二.软硬件平台: OS:fedora7; 编译器:gcc 版本 4.1.2 20070502 (Red Hat 4.1.2-12): 开发板:基于Sep4020的UB4020EVB(1.6) 开发套件; Linux内核:Linux Kernel v2.6.16: 交叉编译器:gcc version 3.4.1: Sqlite:sqlite-3.3.8 三.PC端编译环境的安装: 此处使用的为SQLite版本为sqlite-3.3.8.tar.gz,可以通过以下方式获得此压缩包https://www.360docs.net/doc/4611126699.html,/sqlite-3.3.8.tar.gz(利用迅雷等工具下载)。 将此压缩包拷贝到/root目录下,在终端中进入此目录,并解压sqlite-3.3.8.tar.gz压缩包:

[root@localhost ~]# cd /root/ [root@localhost ~]# tar -zxvf sqlite-3.3.8.tar.gz 将sqlite-3.3.8更名为sqlit_pc,并进入sqlite_pc目录: [root@localhost ~]# mv sqlite-3.3.8 sqlite_pc [root@localhost ~]# cd sqlite_pc //进入目录后采用默认配置生成Makefile文件: [root@localhost sqlite_pc]# ./configure 配置结束后进行编译并且将所生成的文件安装: [root@localhost sqlite_pc]# make [root@localhost sqlite_pc]# make install Make install 安装以后会生成以下文件,系统默认的目录为/usr/local: lib:libsqlite3.a https://www.360docs.net/doc/4611126699.html, libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 include:sqlite3.h bin: sqlite3 由于/usr/local为系统路径,此时只要在终端直接输入sqlite3 [数据库名] 即可打开(没有时创建)一个数据库文件。 例1:在终端输入以下语句: [root@localhost sqlite-3.3.8]# sqlite3 prochip.db SQLite version 3.3.8 Enter ".help" for instructions sqlite> 此时就会正确的打开(没有时创建)prochip.db数据库文件。

C C++中使用SQLite_3 数据库

在C/C++中使用SQLite 廖卫东

C/C++接口 SQLite3.0依据以下需求而创建: 支持UTF-16。 用户可定义的文本排序。 以索引列的形式存储BLOB。 SQLite3.0的API包括了83个独立的函数。简单的程序可以通过三个函数工作:sqlite3_open()、sqlite3_exec()和 sqlite3_close()。 更多的数据库引擎运行控制可以用sqlite3_prepare()来编译一个SQLite语句成字节代码并通过sqlite3_step()来执行它。 一个用sqlite3_column_开头的命令序列可以用来提取关于查询结果的信息。许多接口函数是以UTF-8和UTF-16的形式成对出现的。并且有一个用于实现用户定义SQL函数和用户定义的text比较。

打开与关闭一个数据库 typedef struct sqlite3 sqlite3; int sqlite3_open(const char*, sqlite3**); int sqlite3_open16(const void*, sqlite3**); int sqlite3_close(sqlite3*); sqlite3_open()程序返回一个整型错误代码,而不是像sqlite2做的那样返回一个指向sqlite3结构。sqlite3_open()与 sqlite3_open16()间的区别是sqlite3_open16()采用UTF-16(以本地字节顺序)作为数据库文件名。如果一个新数据库文件需要被创建,那么sqlite3_open16()设置本地的文本表达式为UTF-16而sqlite3_open()设置文本表达式为UTF-8。

sqlite3的数据类型详解

sqlite3中的数据类型 大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的、刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列。 Sqlite使用一个更一般的动态类型系统,sqlite中,值的数据类型跟值本身相关,而不是与它的容器相关。Sqlite的动态类型系统和其他数据库的更为一般的静态类型系统相兼容,但同时,sqlite中的动态类型允许它能做到一些传统刚性类型数据库所不可能做到的事。 1.存储类和数据类型 每个存放在sqlite数据库中(或者由这个数据库引擎操作)的值都有下面中的一个存储类: ●NULL,值是NULL ●INTEGER,值是有符号整形,根据值的大小以1,2,3,4,6或8字节存放 ●REAL,值是浮点型值,以8字节IEEE浮点数存放 ●TEXT,值是文本字符串,使用数据库编码(UTF-8,UTF-16BE或者UTF-16LE) 存放 ●BLOB,只是一个数据块,完全按照输入存放(即没有准换) 从上可以看出存储类比数据类型更一般化。比如INTEGER存储类,包括6中不同长度的不同整形数据类型,这在磁盘上造成了差异。但是只要INTEGER值被从磁盘读出进入到内存进行处理,它们被转换成最一般的数据类型(8-字节有符号整形)。 Sqlite v3数据库中的任何列,除了整形主键列,可以用于存储任何一个存储列的值。sql语句中的中所有值,不管它们是嵌入在sql文本中或者是作为参数绑定到一个预编译的sql语句,它们的存储类型都是未定的。在下面描述的情况中,数据库引擎会在查询执行过程中在数值(numeric)存储类型(INTEGER和REAL)和TEXT 之间转换值。 1.1布尔类型 Sqlite没有单独的布尔存储类型,它使用INTEGER作为存储类型,0为false,1为true 1.2 Date和Time Datatype Sqlite没有另外为存储日期和时间设定一个存储类集,内置的sqlite日期和时间函数能够将日期和时间以TEXT,REAL或INTEGER形式存放 ●TEXT 作为IS08601字符串("YYYY-MM-DD HH:MM:SS.SSS") ●REAL 从格林威治时间11月24日,4174 B.C中午以来的天数 ●INTEGER 从 1970-01-01 00:00:00 UTC以来的秒数 程序可以任意选择这几个存储类型去存储日期和时间,并且能够使用内置的日期和时间函数在这些格式间自由转换 2.0 类型近似

SQLite数据库常用命令

SQLite数据库入门及常用命令 SQLite软件包中包含了一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供了一个较为详尽的关于sqlite3的使用说明。 启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的“sqlite3”命令即可。如果文件不存在,则创建一个新的数据库文件。然后,sqlite3程序将提示你输入SQL语句。敲入SQL语句,以分号“;”结束,敲击回车键后,SQL语句就会执行。 例如,创建一个包含一个表“tbl1”名称为“ex1”的SQLite数据库,你可以这样操作: 你可以通过敲击你所用系统的文件结束符(通常是Ctrl+D)或者中断字符(通常是Ctrl+C),来终止sqlite3程序。请记得在每个SQL语句结束后敲入分号!sqlite3程序通过查找分号来决定一个SQL语句是否结束。如果你省略分号,sqlite3将给你一个连续的命令行提示符并等你给当前的SQL命令添加更多的文字。这个特点很利于多行的SQL语句输入。 SQLite数据库的框架被保存在一个名叫“sqlite_master”的特殊表中。你可以像查询其他表一样通过执行“SELECT”语句查询这个特殊的表:

但是,我们不能在sqlite_master表中执行诸如DROP TABLE、UPDATE、INSERT或者DELETE之类的命令。Sqlite_master表在你创建、删除和索引数据库时自动更新这个表。我们不能手工地更改这个表。 temporary表的结构没有存储在“sqlite_master”表中,这是由于temporary表对应用是不可见的,而不是应用程序创建的。temporary表的结构是被存储在另外一个名叫“sqlite_temp_master”的特定表中。 sqlite3的特殊命令。大多数的时候,sqlite3读入用户输入的行,并把它们传递到SQLite库中去运行。但是,如果用户输入的行以一个点“.”开始,那么,这行将被sqlite3程序自身截获并进行解释。这些“点命令”通常被用来改变查询输出的格式,或者执行某个预定义的查询语句。 你可以在任何时候输入“.help”,列出可用的“点命令”。 sqlite3命令可以以8中不同的格式输出查询结果:“csv”、“列”、“html”、“插入”、“行”、“制表”和“tcl”。你可以使用“.mode”这个点命令来在这些输出格式之间进行切换。 默认的输出格式是“列表”。在列表模式下,每条查询结果记录被写在一行中,并且,每列之间以一个字符串分隔符隔开。默认的分隔符是一个管道符号“|”。列表符号模式在当你输出查询结果到另外一个字符处理器的程序(如awk)中时是尤为有用的: 我们也可以使用“.separator”点命令来改变分界符。例如,为了把分隔符改为一个逗号和空格,我们可以这么做:

office word使用技巧大全(超全)讲课讲稿

o f f i c e w o r d使用技巧大全(超全)

不收藏不行的word使用技巧大全 三招去掉页眉那条横线 1、在页眉中,在“格式”-“边框和底纹”中设置表格和边框为“无”,应用于“段落” 2、同上,只是把边框的颜色设置为白色(其实并没有删的,只是看起来没有了,呵呵) 3、在“样式”栏里把“页眉”换成“正文”就行了——强烈推荐! 会多出--(两个横杠) 这是用户不愿看到的,又要多出一步作删除-- 解决方法:替换时在前引号前加上一个空格问题就解决了 插入日期和时间的快捷键 Alt+Shift+D:当前日期 Alt+Shift+T:当前时间 批量转换全角字符为半角字符

首先全选。然后“格式”→“更改大小写”,在对话框中先选中“半角”,确定即可 Word启动参数简介 单击“开始→运行”命令,然后输入Word所在路径及参数确定即可运行,如“C:\ PROGRAM FILES \MICROSOFT Office \Office 10\ WINWord.EXE /n”,这些常用的参数及功能如下: /n:启动Word后不创建新的文件。 /a:禁止插件和通用模板自动启动。 /m:禁止自动执行的宏。 /w:启动一个新Word进程,独立与正在运行的Word进程。 /c:启动Word,然后调用Netmeeting。 /q:不显示启动画面。 另外对于常需用到的参数,我们可以在Word的快捷图标上单击鼠标右键,然后在“目标”项的路径后加上该参数即可。 快速打开最后编辑的文档

如果你希望Word在启动时能自动打开你上次编辑的文档,可以用简单的宏命令来完成: (1)选择“工具”菜单中的“宏”菜单项,单击“录制新宏”命令打开“录制宏”对话框; (2)在“录制宏”对话框中,在“宏名”输入框中输入“autoexec”,点击“确定”; (3)从菜单中选择“文件”,点击最近打开文件列表中显示的第一个文件名;并“停止录制”。保存退出。下次再启动Word时,它会自动加载你工作的最后一个文档。 格式刷的使用 1、设定好文本1的格式。 2、将光标放在文本1处。 3、单击格式刷按钮。 4、选定其它文字(文本2),则文本2的格式与文本1 一样。 若在第3步中单击改为双击,则格式刷可无限次使用,直到再次单击格式刷(或按Esc键)为止。 删除网上下载资料的换行符(象这种“↓”)

☆超全实用Office使用技巧方法大全

Excel 使用技巧集锦——163种技巧(多加练习,定有成功) 目录 一、基本方法7 1.快速选中全部工作表7 2.快速启动E XCEL7 3.快速删除选定区域数据7 4.给单元格重新命名7 5.在E XCEL中选择整个单元格范围 8 6.快速移动/复制单元格 8 7.快速修改单元格式次序8 8.彻底清除单元格内容8 9.选择单元格8 10.为工作表命名9 11.一次性打开多个工作簿9 12.快速切换工作簿9 13.选定超级链接文本(微软O FFICE技巧大赛获奖作品)10 14.快速查找10 15.修改默认文件保存路径10 16.指定打开的文件夹10 17.在多个E XCEL工作簿间快速切换 10 18.快速获取帮助11 19.创建帮助文件的快捷方式11 20.双击单元格某边移动选定单元格11 21.双击单元格某边选取单元格区域11 22.快速选定不连续单元格11 23.根据条件选择单元格11 24.复制或移动单元格12

25.完全删除E XCEL中的单元格 12 26.快速删除空行12 27.回车键的粘贴功能12 28.快速关闭多个文件12 29.选定多个工作表13 30.对多个工作表快速编辑13 31.移动和复制工作表13 32.工作表的删除13 33.快速选择单元格13 34.快速选定E XCEL区域(微软O FFICE技巧大赛获奖作品) 13 35.备份工件簿14 36.自动打开工作簿14 37.快速浏览长工作簿14 38.快速删除工作表中的空行14 39.绘制斜线表头14 40.绘制斜线单元格15 41.每次选定同一单元格15 42.快速查找工作簿15 43.禁止复制隐藏行或列中的数据15 44.制作个性单元格16 二、数据输入和编辑技巧16 1.在一个单元格内输入多个值16 2.增加工作簿的页数16 3.奇特的F4键 16 4.将格式化文本导入E XCEL17 5.快速换行17 6.巧变文本为数字17 7.在单元格中输入0值17 8.将数字设为文本格式18

sqlite3api编程手册

SQLite3API编程手册 前序: (1) 一、版本 (1) 二、基本编译 (2) 三、 SQLITE操作入门 (2) (1)基本流程 (2) (2) SQL语句操作 (4) (3)操作二进制 (8) (4)事务处理 (10) 四、给数据库加密 (10) 五、后记 (25) 前序: Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。 这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但是,我没有尝试过在别的系统、别的编译器下编译,因此下面的叙述如果不正确,则留待以后修改。 下面我的代码仍然用 VC 编写,因为我觉得VC是一个很不错的IDE,可以加快代码编写速度(例如配合 Vassist )。下面我所说的编译环境,是VC2003。如果读者觉得自己习惯于 unix 下用 vi 编写代码速度较快,可以不用管我的说明,只需要符合自己习惯即可,因为我用的是标准 C 或 C++ 。不会给任何人带来不便。 一、版本 从??网站可下载到最新的 sqlite 代码和编译版本。我写此文章时,最新代码是版本。 很久没有去下载 sqlite 新代码,因此也不知道 sqlite 变化这么大。以前很多文件,现在全部合并成一个文件。如果单独用此文件,是挺好的,省去拷贝一堆文件还担心有没有遗漏。但是也带来一个问题:此文件太大,快接近7万行代码,VC开它整个机器都慢下来了。如果不需要改它代码,也就不需要打开文件,机器不会慢。但是,下面我要写通过修改 sqlite 代码完成加密功能,那时候就比较痛苦了。如果个人水平较高,建议用些简单的编辑器来编辑,例如UltraEdit 或 Notepad 。速度会快很多。 二、基本编译 这个不想多说了,在 VC 里新建 dos 控制台空白工程,把和添加到工程,再新建一个文件。在里面写: extern "C" { #include "./" }; int main( int , char** ) { return 0; } 为什么要extern “C” ?如果问这个问题,我不想说太多,这是C++的基础。要在 C++ 里使用一段 C 的代码,必须要用extern “C” 括起来。C++跟 C虽然语法上有重叠,但是它们是两个不同的东西,内存里的布局是完全不同的,在C++编译器里不用extern “C”括起C代码,会导致编译器不知道该如何为 C 代码描述内存布局。 可能在里人家已经把整段代码都extern “C” 括起来了,但是你遇到一个 .c 文件就自觉的再括一次,也没什么不好。 基本工程就这样建立起来了。编译,可以通过。但是有一堆的 warning。可以不管它。

相关文档
最新文档