C++使用Sqlite3的简单案例

重Sqlite3官网下载[http://www.sqlite.org/download.html](http://www.sqlite.org/download.html)如下图

C++使用Sqlite3的简单案例_第1张图片
解压文件复制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++,数据库,sqlite3)