视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VC6下SQLite数据库应用起步
2020-11-09 07:28:34 责编:小采
文档

SQLite 是一款非常适合嵌入式应用的数据库,小巧、快速和可靠。真正的开源免费,不保留任何版权( Public Domain )。它无需运行额外的服务器进程,用它来开发桌面数据库的应用,乎比 MS Access 更显得简洁。 【一 . 生成 SQLite 库文件】 新建 “C:\mylibs\


SQLite是一款非常适合嵌入式应用的数据库,小巧、快速和可靠。真正的开源免费,不保留任何版权(Public Domain)。它无需运行额外的服务器进程,用它来开发桌面数据库的应用,似乎比MS Access更显得简洁。


【一. 生成SQLite库文件】
新建“C:\mylibs\libSQLite3”目录,将它作为我们的当前工作目录。

(1)在SQLite的官方网站下载

源代码 SQLite 3.8.0.2
http://www.sqlite.org/2013/sqlite-amalgamation-3080002.zip

DLL库文件

http://www.sqlite.org/2013/sqlite-dll-win32-x86-3080002.zip

命令行控制平台

http://www.sqlite.org/2013/sqlite-shell-win32-x86-3080002.zip


解压缩其中的库文件中“sqlite3.def”和“sqlite3.dll”两个文件到“C:\mylibs\libSQLite3\”;
打开“命令提示符”窗口,用LIB命令生成用于连接(LINK)使用的lib文件:
CD C:\mylibs\libSQLite3
LIB /DEF:sqlite3.def /machine:IX86
这样将生成“sqlite3.lib”和“sqlite3.exp”两个文件。

(2)检查文件清单,此时“C:\mylibs\libSQLite3\”目录下应该有如下五个文件:
sqlite3.def
sqlite3.dll
sqlite3.exp
sqlite3.h
sqlite3.lib
【二. 编写示例程序】
(1)打开VC6.0,创建一个空的“Win32控制台应用程序”项目,名为“sqlitedemo”,在“D:\VCStudio\sqlitedemo”目录下。

(2)Project→Settings,在Link选项卡,“Category”选择“General”,在“Object/library modules”的最后填入“sqlite3.lib”,注意用空格分隔各项。

(3)将“libSQLite3”目录及其包含的文件复制到我们的工程目录。再将“libSQLite3”目录下的“sqlite3.lib”和“ sqlite3.dll”文件移动到工程目录下。

这样,在需要用到“sqlite”库的CPP文件顶部,加入一行:
#include "sqlite3.h"
然后,就可以在文件中调用sqlite3.dll里面的所有函数了。

(4)建立示例数据库。打开控制台 sqlite3.exe,生成app.db:
sqlite> CREATE TABLE t1(c1 TEXT);
sqlite> INSERT INTO t1 VALUES('Hello World!');
sqlite> SELECT * FROM t1;
Hello World!
sqlite> .exit
复制app.db到工程目录下。

(5)新建“C++源文件”,名为“sqlitedemo.cpp”,选择“加入工程”,编写代码
#include
#include

#include ".\libSQLite3\sqlite3.h"

static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName)
{
int i;
for ( i=0; i
{
printf( "%s = %s\n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] );
}

return 0;
}

int main(int argc, char * argv[])
{
const char * sSQL = "select * from t1;";
char * pErrMsg = 0;
int ret = 0;
sqlite3 * db = 0;

ret = sqlite3_open("./app.db", &db);

if ( ret != SQLITE_OK )
{
fprintf(stderr, "Could not open database: %s", sqlite3_errmsg(db));
exit(1);
}

printf("Successfully connected to database\n");

sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );
if ( ret != SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", pErrMsg);
sqlite3_free(pErrMsg);
}

sqlite3_close(db);
db = 0;

return 0;
}

按“Ctrl+F5”运行,结果:
Successfully connected to database
c1 = Hello World!
Press any key to continue

下载本文
显示全文
专题