博文

关于SQLite 3从这里开始的补充说明!(2007-06-13 14:51:00)

摘要: 在本人翻译的SQLite3 从这里开始一文中,最后一个例子,这里给出一个在VC6中的一个实现步骤: File | New | Projects: Win32 Console Application输入你自己的工程名这里是“D:\MyTest”,然后选择An empty project,确定 File | New | Files: C++ Source Files创建新文件Test.C 复制SQLite3从这里开始一文中的源文件 Tools | Options...:Directorys向Include Files添加sqlite3.h(sqlite3.h sqlite3.c可以从官方网站上下载http://www.sqlite.org/sqlite-source-3_3_17.zip)所在路径,本例中为D:\SQLite,然后再添加引用目标链接库(它的生成见下面生成引用目标链接库,也可参考SQLite如何在Windows下编译一文),本文中为D:\SQLite 此时编译仍会提示test.obj : error LNK2001: unresolved external symbol _sqlite3_free
test.obj : error LNK2001: unresolved external symbol _sqlite3_exec
test.obj : error LNK2001: unresolved external symbol _sqlite3_close
test.obj : error LNK2001: unresolved external symbol _sqlite3_errmsg
test.obj : error LNK2001: unresolved external symbol _sqlite3_open
Debug/MyTest.exe : fatal error LNK1120: 5 unresolved externals 因为不能找到链接库,Project | Settings... | Link: Object/Library Modules:后面添加sqlite3.lib,再编译通过。也可以在Test.C中添加#pragma comment(lib, "sqlite3.l......

阅读全文(7549) | 评论:0

SQLite 如何在Windows下编译?(2007-06-13 12:44:00)

摘要: SQLite -- 如何编译,使用。 译自SQLite Wiki,只提供Windows部分翻译,因为这近两天只是在用WX编程。以后补全:-) 限于本人水平,难免有误,还请批评! MSVC与SQLite DLL 用下面的命令实现为MS Visual C++从sqlitedll.zip(http://www.sqlite.org/sqlitedll.zip)创建一个导入库: LIB /DEF:sqlite.def 它将生成sqlite.lib和sqlite.exp文件。sqlite.lib能被用来链接到你你的程序中以使用SQLite DLL。   给初学者 用MS VC++ 5编译SQLite 这里提供给那象如我一样想一步一步重新编译SQLite。由于很久没有使用C语言了,如果有任何借误的地方,请指正: 安装MS VC++ File | New | Projects: Choose Win32 DLL,并给你的工程名一名字。工程将被保存在它自己的文件夹下"\Program Files\DevStudio\MyProjects\"。仔细地确定名字,因为它将用来生成DLL 解压SQLite源文件到这个子文件夹中(注:我知道有两个版本的源代码。一个是通用的,例如,不针对特定的操作系统。而另一个源代码包特定说明,为MS VC++而准备的。选择后面一个) Project | Add to Project | Files,导入到你工程所在的文件夹,现在包含了SQLite源文件,然后选择所有已加入你工程的C文件(注:如果想从你工程中删除某一个文件,用鼠标选中它,然后按DEL键。没有这个操作的菜单项的快捷弹出菜单) 如果你没有用TCL(一个脚本语言),移除tclsqlite.c Build | Set Active Configuration, 并选中"My Project - Win32 Release"以便于我们可以产生一个不带调试信息的无格式的DLL 如果你想增加版本信息以便于可以在Windows浏览器中鼠标右键DLL信息时得到一个版本号,选择Project | Add to project ! New : Resource Script。一个纯文本角本res.rc被添加到你的工程中你可以编辑它以包含版本信息(我还没有找到一个如何......

阅读全文(8388) | 评论:0

SQLite 从这里开始!(2007-06-11 20:33:00)

摘要: SQLite入门 原文地址:http://www.sqlite.org/quickstart.html 从这里开始,你不必经过烦琐的阅读和配置就能开始体验SQLite。(学习最好办法,不是完备的准备,而是运用--在实践中学习!译者注) 下载代码 获得一份已编译的二进制文档,或者获得一份源代码来自己动手编译它。访问下载页面来取得更多的信息。 创建一个新的数据库 在一个shell或才DOS命令提示符下,敲入:“sqlite3 test.db”。这样做将创建一个新的名叫“test.db”的数据库。(你可用你喜欢的任何用户名) 输入SQL命令来创建并增加一个新的数据库。 更多的文档可以访问这里。 用SQLite编程 下面是一个简单的TCL程序,它显示如何用SQLite的TCL接口。程序把第二个参数指定的SQL语句来在第一个参数指定的数据库上执行。值得注意的命令是第7行里打开一个SQLite数据库并产生一个新的名为“db”来存取数据库的sqlite3命令,在第8行里db命令的作用是在数据库上执行命令,并在脚本的最后一行关闭数据库连接。 #!/usr/bin/tclsh if {$argc!=2} { puts stderr "Usage: %s DATABASE SQL-STATEMENT" exit 1 } load /usr/lib/tclsqlite3.so Sqlite3 sqlite3 db [lindex $argv 0] db eval [lindex $argv 1] x { foreach v $x(*) { puts "$v = $x($v)" } puts "" } db close 下面简单的C程序的例子演示如何用SQLite的C/C++程序接口。每一个参数给定数据库的名字然后第二个参数是一个或多个面向该数据库的SQL语句。这里就注意的函数调用是第22行打开数据库的sqlite3_open(),第27行的执行SQL语句的sqlite3_exec(),以及第31行的关闭数据库连接的sqlite3_close()。 #include <stdio.h> #include <sqlite3.h> static int c......

阅读全文(5963) | 评论:2

SQLite第三版 C/C++接口(2007-06-09 13:42:00)

摘要: SQLite 第三版C/C++接口 1.0 概述 SQLite 3.0是SQLite的新版本,它继承于SQLite 2.8.13,但带有一个不兼容的文件格式和API。SQLite 3.0依据以下需求而创建: 支持UTF-16。 用户可定义的文本排序。 以索引列的形式存储BLOB。 必须迁移到3.0版来实现的原因是每一个改变与数据库文件格式不兼容。另外一些不兼容的改变,如清除的API,在下面的理论中介绍最好是一次性去掉你的不兼容的变化。 3.0版的API与2.X版的相似,但也有一些重要的改变。最显著的是出现在所有的API函数和数据据结构前的“sqlite_”前缀被改为“sqlite3_”。这避免二类API间的混乱并且允许链接器同时应对SQLite 2.X和SQLite 3.0。 在UTF-16的C类型应该是什么样子上没有统一。因此,SQLite用一个通用的类型void *来指向UTF-16字符串。客户软件可以转换void*到任何与之系统相适应的数据类型。 2.0 C/C++接口 除了几个数据结构和#define,SQLite 3.0的API包括了83个独立的函数。(一个完整的API参考作为一个独立的文档提供。)幸运的是,接口不是与它所显示的大小一般复杂。简单的程序仍可以通过仅仅三个函数工作:sqlite3_open()、sqlite3_exec()和sqlite3_close()。更多的数据库引擎运行控制可以用sqlite3_prepare()来编译一个SQLite语句成字节代码并通过sqlite3_step()来执行它。一个用sqlite3_column_开头的命令序列可以用来提取关于查询结果的信息。许多接口函数是以UTF-8和UTF-16的形式成对出现的。并且有一个用于实现用户定义SQL函数和用户定义的text比较。 2.1 打开与关闭一个数据库 typedef struct sqlite3 sqlite3;
int sqlite3_open(const char*, sqlite3**);
int sqlite3_open16(const void*, sqlite3**);
int sqlite3_close(sqlite3*);
const char *sqlite3_errmsg(sqlite3*......

阅读全文(10567) | 评论:0

SQLite命令行程序说明(2007-06-08 21:34:00)

摘要: sqlite3: 一个SQLite数据库的命令行接口     译者注         原文地址:http://www.sqlite.org/sqlite.html     SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。 开始       启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。         例如,创建一个包含一个表"tb11"名字为"ex1"的SQLite数据库,你可以这样做: $sqlite3 ex1
SQLite version 3.3.17
Enter ".help" for instructions
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!', 10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>         你可以通过敲你所用系统的文件结束符(通常是Ctrl + D)或者中断字符(通常是Ctrl + C)。来终止sqlite3程序。确定你在每个SQL语句结束敲入分号!sqlite3程序通过查找分号来决定一个SQL语句的结束。如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL......

阅读全文(28066) | 评论:4