作者:园园哚 | 来源:互联网 | 2023-06-13 13:14
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