SQLite在VC下的使用
发布时间:2020-12-13 00:11:50 所属栏目:百科 来源:网络整理
导读:SQLite在VC下的使用(转)http://www.sqlite.com.cn/MySqlite/4/523.Html 一、SQLite简介 SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。 SQLite 支持多数SQL92标准,例如
SQLite在VC下的使用(转)http://www.sqlite.com.cn/MySqlite/4/523.Html
一、SQLite简介 SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。 SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。 支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。 二、下载SQLite SQLite可以到官方站点下载 http://www.sqlite.org/download.html 包括:Linux,Mac OS X,Windows下的已编译文件以及源代码、帮助文档。 VC中使用sqlite SQLite官方下载只提供给我们一个sqlite3.dll跟一个sqlite3.def文件,并没有提供用于VC++6.0的lib文件,可以利用sqlite3.def文件生成,步骤如下: 1.将sqlite3.h(D:sqlite-amalgamation-3_6_23.zip)拷贝到C:Program FilesMicrosoft Visual StudioVC98Include目录下,这时编译可通过,但链接错误,因为没有LIB文件() 2.启动一个命令行程序,进入VC的安装目录C:Program FilesMicrosoft Visual StudioVC98Bin,在这个目录下面有一个LIB.exe文件,使用它就能生成sqlite3.lib文件,将sqlite3.def文件放到相同目录,或者绝对路径也可以, 然后在命令行输入如下命令: LIB /MACHINE:IX86 /DEF:sqlite3.def 该命令生成两个文件:sqlite3.lib和sqlite3.exp 运行该命令时,如果提示找不到MSPDB60.DLL文件,可从其它目录拷贝至Bin目录下 3.将生成的sqlite3.lib拷贝到Lib目录下,将sqlite3.dll拷贝到C:WINNTsystem32目录下 4.将sqlite3.lib加入到工程链接中,Project->Settings,Link选项卡,Object/library modules最后添入sqlite3.lib D:sqlitedll-3_6_23里有.dll和.def文件 生成的lib在bin下 这时以下程序便可通过VC编译链接并运行: #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> int column_names_printed = 0; void print_row(int n_values,char** values) { int i; for (i = 0; i < n_values; ++i) { printf("%10s",values[i]); } printf("n"); } int print_result(void* data,int n_columns,char** column_values,char** column_names) if (!column_names_printed) { print_row(n_columns,column_names); column_names_printed = 1; return 0; int main() sqlite3 *db=NULL; char *errMsg = NULL; int rc; rc = sqlite3_open("test.db",&db); if( rc ){ fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db)); sqlite3_close(db); exit(1); else printf("open test.db successfully!n"); rc = sqlite3_exec(db,"BEGIN TRANSACTION;",NULL,NULL); sex varchar(6),age varchar(2));","INSERT INTO students VALUES('00001','Mary','female','15'); INSERT INTO students VALUES('00002','John','male','16'); INSERT INTO students VALUES('00003','Mike',sans-serif; font-size:14px; line-height:25px; text-align:left"> INSERT INTO students VALUES('00004','Kevin','17'); INSERT INTO students VALUES('00005','Alice','14'); INSERT INTO students VALUES('00006','Susan',sans-serif; font-size:14px; line-height:25px; text-align:left"> INSERT INTO students VALUES('00007','Christina',sans-serif; font-size:14px; line-height:25px; text-align:left"> INSERT INTO students VALUES('00008','Brian',sans-serif; font-size:14px; line-height:25px; text-align:left"> INSERT INTO students VALUES('00009','Dennis',sans-serif; font-size:14px; line-height:25px; text-align:left"> INSERT INTO students VALUES('00010','Daphne','18');", NULL,&errMsg); column_names_printed = 0; printf("error code: %dn",rc); printf("error message: %sn",errMsg); 另外,在vc下编译sqlite源代码,出现can not find tcl.h 可以 去掉tclsqlite.c或者在这个文件前面添加#define NO_TCL 去掉tcl的支持 三、SQLite的简单使用 3.1 建立数据库 C:sqlite-3_6_11> sqlite3.exe dbname.db sqlite3.exe后面跟数据库文件名,它是进入编译阶段的入口指令 3.2 创建数据表 sqlite> create table users(userid varchar(20) PRIMARY KEY,sans-serif; font-size:14px; line-height:25px; text-align:left"> ...> age int,sans-serif; font-size:14px; line-height:25px; text-align:left"> ...> birthday datetime); 3.3 添加记录 insert into users values('wang',20,'1989-5-4'); insert into users values('li',22,'1987-11-16'); 3.4 查询记录 select * from users order by birthday; 3.5 删除记录 delete from users where userid='wang'; 3.6 退出sqlite sqlite> .exit SQLite数据库的数据结构是存贮在 "sqlite_master" 表中 具体命令可以输入 .help查看或参考帮助文档 四、编译LIB 需要到SQLite网站下载sqlitedll-3_6_11.zip,以VS 2008为例: 在DOS命令行下: PATH = D:Program FilesMicrosoft Visual Studio 9.0VCbin;%PATH% PATH = D:Program FilesMicrosoft Visual Studio 9.0Common7IDE;%PATH% LIB /DEF:sqlite3.def /machine:IX86 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |