tags: cpp sqlite3 db title: Simple C++ Sqlite3 Example This comes straight out of Chatgpt. ```cpp #include #include 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; } ```