C++使用Sqlite3的简单案例
2016-04-24 21:41
411 查看
重Sqlite3官网下载[http://www.sqlite.org/download.html](http://www.sqlite.org/download.html)如下图
解压文件复制sqlite3.h,sqlite3.c文件到新建的win32项目中
下载sqlite-dll-win64-x64文件,解压后可以直接使用命令行进行数据库的操作,可以配置path路径,也可以不配置,使用如下图
#include <iostream> #include "sqlite3.h" using namespace std; bool test(sqlite3* db); /* typedef int(*sqlite3_callback)( void*, // Data provided in the 4th argument of sqlite3_exec() int, // The number of columns in row char**, // An array of strings representing fields in the row char** // An array of strings representing column names ); */ static int callback(void *NotUsed, int argc, char **argv, char **azColName){ int i; fprintf(stderr, "%s: ", (const char*)NotUsed); for (i = 0; i<argc; i++){ printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } void insert() { /* Create SQL statement */ char * sql = "INSERT INTO COMPANY (id,name,age,address,salary) " \ "VALUES (1, 'Paul', 32, 'California', 20000.00 ); " \ "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \ "VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); " \ "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \ "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );" \ "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \ "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );"; } void main() { cout << "Hello C++" << endl; sqlite3 *db; char *zErrMsg = 0; int rc; char *sql; const char* data = "Callback function called"; /* Open database */ rc = sqlite3_open("test.db", &db); if (rc){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); exit(0); } else{ fprintf(stdout, "Opened database successfully\n"); } // Create SQL statement /* sql = "CREATE TABLE person(" \ "id INT PRIMARY KEY NOT NULL," \ "name TEXT NOT NULL," \ "age INT NOT NULL," \ "address CHAR(50)," \ "salary REAL );"; */ /* Create SQL statement */ /* sql = "INSERT INTO person (id,name,age,address,salary) " \ "VALUES (1, 'Paul', 32, 'California', 20000.00 ); " \ "INSERT INTO person (id,name,age,address,salary) " \ "VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); " \ "INSERT INTO person (id,name,age,address,salary)" \ "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );" \ "INSERT INTO person (id,name,age,address,salary)" \ "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );"; */ /* Create SQL statement */ /* sql = "SELECT * from person"; */ /* Create merged SQL statement */ /* sql = "UPDATE person set salary = 25000.00 where id=1; " \ "SELECT * from person"; */ /* Create merged SQL statement */ sql = "DELETE from person where id=2; " \ "SELECT * from person"; /* Execute SQL statement */ rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg); if (rc != SQLITE_OK){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } else{ fprintf(stdout, "Table created successfully\n"); } sqlite3_close(db); while (1); }
简单的使用案例!
相关文章推荐
- C++走向远洋——39(指向学生类的指针)
- c++第四次上机作业
- c++第四次实验
- 整数划分问题
- LeetCode 171. Excel Sheet Column Number C语言
- LeetCode 242. Valid Anagram C语言
- LeetCode 100. Same Tree C语言
- 深入浅出--C\C++指针的本质
- C++中static_cast/const_cast/dynamic_cast/reinterpret_cast的区别和使用
- C++ 学习基础篇(一)—— C++与C 的区别
- C++中static_cast/const_cast/dynamic_cast/reinterpret_cast的区别和使用
- 文章标题 c语言中关于串的相关知识以及操作
- LeetCode 283. Move Zeroes C语言
- C++走向远洋——38(用对象数组操作长方柱类)
- C++学习(二)——指针与动态内存分配
- LeetCode 226. Invert Binary Tree C语言
- C++第4次作业
- C语言
- LeetCode 104. Maximum Depth of Binary Tree C语言
- C++的4种类型转换关键字及其特点