您的位置:首页 > 编程语言 > C语言/C++

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);
}


简单的使用案例!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: