Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "sqlite3.h"
- void createTable(sqlite3* DB);
- void insertDb(sqlite3* DB, const std::string& name);
- void readDb(sqlite3* DB);
- void updateDb(sqlite3* DB, int id, const std::string& newName);
- void deleteDb(sqlite3* DB, int id);
- int main() {
- sqlite3* DB;
- int exit = sqlite3_open("example.db", &DB);
- if (exit) {
- std::cerr << "Error opening DB: " << sqlite3_errmsg(DB) << std::endl;
- return -1;
- }
- std::cout << "Opened database successfully!" << std::endl;
- //createTable(DB);
- /*insertDb(DB, "Aung Win Htut");
- insertDb(DB, "Ko Ko");
- insertDb(DB, "Aye Aye");*/
- readDb(DB);
- updateDb(DB, 1, "Green Hackers");
- deleteDb(DB, 3);
- readDb(DB);
- sqlite3_close(DB);
- return 0;
- }
- void createTable(sqlite3* DB) {
- const char* sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);";
- char* errMsg;
- int exit = sqlite3_exec(DB, sql, nullptr, 0, &errMsg);
- if (exit != SQLITE_OK) {
- std::cerr << "Error creating table: " << errMsg << std::endl;
- sqlite3_free(errMsg);
- }
- else {
- std::cout << "Table created successfully!" << std::endl;
- }
- }
- void insertDb(sqlite3* DB, const std::string& name) {
- const char* sql = "INSERT INTO users (name) VALUES (?);";
- sqlite3_stmt* stmt;
- int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
- if (exit != SQLITE_OK) {
- std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
- return;
- }
- sqlite3_bind_text(stmt, 1, name.c_str(), -1, SQLITE_STATIC);
- exit = sqlite3_step(stmt);
- if (exit != SQLITE_DONE) {
- std::cerr << "Error inserting data: " << sqlite3_errmsg(DB) << std::endl;
- }
- sqlite3_finalize(stmt);
- }
- void readDb(sqlite3* DB) {
- const char* sql = "SELECT * FROM users;";
- sqlite3_stmt* stmt;
- int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
- if (exit != SQLITE_OK) {
- std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
- return;
- }
- while ((exit = sqlite3_step(stmt)) == SQLITE_ROW) {
- int id = sqlite3_column_int(stmt, 0);
- const unsigned char* name = sqlite3_column_text(stmt, 1);
- std::cout << "ID: " << id << ", Name: " << name << std::endl;
- }
- if (exit != SQLITE_DONE) {
- std::cerr << "Error reading data: " << sqlite3_errmsg(DB) << std::endl;
- }
- sqlite3_finalize(stmt);
- }
- void updateDb(sqlite3* DB, int id, const std::string& newName) {
- const char* sql = "UPDATE users SET name = ? WHERE id = ?;";
- sqlite3_stmt* stmt;
- int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
- if (exit != SQLITE_OK) {
- std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
- return;
- }
- sqlite3_bind_text(stmt, 1, newName.c_str(), -1, SQLITE_STATIC);
- sqlite3_bind_int(stmt, 2, id);
- exit = sqlite3_step(stmt);
- if (exit != SQLITE_DONE) {
- std::cerr << "Error updating data: " << sqlite3_errmsg(DB) << std::endl;
- }
- sqlite3_finalize(stmt);
- }
- void deleteDb(sqlite3* DB, int id) {
- const char* sql = "DELETE FROM users WHERE id = ?;";
- sqlite3_stmt* stmt;
- int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
- if (exit != SQLITE_OK) {
- std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
- return;
- }
- sqlite3_bind_int(stmt, 1, id);
- exit = sqlite3_step(stmt);
- if (exit != SQLITE_DONE) {
- std::cerr << "Error deleting data: " << sqlite3_errmsg(DB) << std::endl;
- }
- sqlite3_finalize(stmt);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement