Dup Ver Goto 📝

Simple C++ Sqlite3 Example

To
82 lines, 329 words, 2487 chars Page 'Example_01' does not exist.

This comes straight out of Chatgpt.

#include <iostream>
#include <sqlite3.h>

static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
    for (int i = 0; i < argc; i++) {
        std::cout << azColName[i] << ": " << (argv[i] ? argv[i] : "NULL") << std::endl;
    }
    std::cout << std::endl;
    return 0;
}

int main() {
    sqlite3 *db;
    char *errMsg = 0;

    // Open a database connection
    int rc = sqlite3_open("test.db", &db);

    if (rc) {
        std::cerr << "Can't open database: " << sqlite3_errmsg(db) << std::endl;
        return (0);
    } else {
        std::cout << "Opened database successfully" << std::endl;
    }

    // Create SQL statement to create a table
    const char *sql = "CREATE TABLE COMPANY("
                      "ID INT PRIMARY KEY NOT NULL,"
                      "NAME TEXT NOT NULL,"
                      "AGE INT NOT NULL,"
                      "ADDRESS CHAR(50),"
                      "SALARY REAL);";

    // Execute SQL statement
    rc = sqlite3_exec(db, sql, callback, 0, &errMsg);

    if (rc != SQLITE_OK) {
        std::cerr << "SQL error: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    } else {
        std::cout << "Table created successfully" << std::endl;
    }

    // Insert data into table
    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);";

    // Execute SQL statement
    rc = sqlite3_exec(db, sql, callback, 0, &errMsg);

    if (rc != SQLITE_OK) {
        std::cerr << "SQL error: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    } else {
        std::cout << "Records created successfully" << std::endl;
    }

    // Select data from table
    sql = "SELECT * FROM COMPANY;";
    rc = sqlite3_exec(db, sql, callback, 0, &errMsg);

    if (rc != SQLITE_OK) {
        std::cerr << "SQL error: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    } else {
        std::cout << "Operation done successfully" << std::endl;
    }

    // Close the database connection
    sqlite3_close(db);

    return 0;
}