热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vc++调用sqlite

1.下载对应的库,源码,工具源码: http:www.sqlite.org2016sqlite-amalgamation-3150200.zip库: http:www.sqlite

1.下载对应的库,源码,工具

源码: http://www.sqlite.org/2016/sqlite-amalgamation-3150200.zip

库: http://www.sqlite.org/2016/sqlite-dll-win32-x86-3150200.zip

工具: http://www.sqlite.org/2016/sqlite-tools-win32-x86-3150200.zip

2.生成sqlite对应的lib库

打开vc的编译环境命令行,切换目录到sqlite3.def库文件所在的目录,运行如下命令

LIB /MACHINE:IX86 /DEF:sqlite3.def

生成:sqlite3.lib和sqlite3.exp

将源码中sqlite3.h,生成的sqlite3.lib和库中sqlite3.dll放入工程目录就可以用了

3.vc调用

建立各控制台程序,修改主程序代码如下,转自网上,做了部分修改

生成的数据库是test.db

// testSqlite.cpp : 定义控制台应用程序的入口点。
//

#include
"stdafx.h"
#include

#include
"sqlite3.h"
#pragma comment(lib, "sqlite3.lib")
int column_names_printed = 0;
void print_row(int n_values, char** values)
{
int i;
for (i = 0; i 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;
}
print_row(n_columns, column_values);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
sqlite3
*db = NULL;
char* errMsg = NULL;
int rc = sqlite3_open("test.db", &db);
if(rc){
fprintf(stderr,
"Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(
1);
return 1;
}
else{
printf(
"open test.db successfully!\n");
}
rc
= sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL);
rc
= sqlite3_exec(db,
"CREATE TABLE students(number varchar(10), name varchar(10), sex varchar(6), age varchar(2));",
NULL, NULL, NULL);
rc
= sqlite3_exec(db,
"INSERT INTO students VALUES('00001', 'Mary', 'female', '15');"
"INSERT INTO students VALUES('00002', 'John', 'male', '16');"
"INSERT INTO students VALUES('00003', 'Mike', 'male', '15');"
"INSERT INTO students VALUES('00004', 'Kevin', 'male', '17');"
"INSERT INTO students VALUES('00005', 'Alice', 'female', '14');"
"INSERT INTO students VALUES('00006', 'Susan', 'female', '16');"
"INSERT INTO students VALUES('00007', 'Christina', 'female', '15');"
"INSERT INTO students VALUES('00008', 'Brian', 'male', '16');"
"INSERT INTO students VALUES('00009', 'Dennis', 'male', '14');"
"INSERT INTO students VALUES('00010', 'Daphne', 'female', '18');",
NULL, NULL,
&errMsg);
column_names_printed
= 0;
rc
= sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='female';", print_result, NULL, &errMsg);
column_names_printed
= 1;
printf(
"\n");
column_names_printed
= 0;
rc
= sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='male';", print_result, NULL, &errMsg);
column_names_printed
= 1;
rc
= sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL);
printf(
"error code: %d\n", rc);
printf(
"error message: %s\n", errMsg);
sqlite3_close(db);
return 0;
}

4.查看

在控制台下运行工具里的sqlite3程序

打开数据库

sqlite3 test.db

 

设置显示模式

.head on

.mode column

 

查看所有的表

.tables

 

查看数据库的各个成员的结构

select * from sqlite_master;

 

查看表数据

select * from students;

 

退出

.quit


推荐阅读
author-avatar
园园哚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有